2017 © Pedro Peláez
 

library metabot

Php code that code php code.

image

blacktools/metabot

Php code that code php code.

  • Monday, July 16, 2018
  • by henriquefernandez
  • Repository
  • 0 Watchers
  • 0 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

About

PhpMetaBot is a very minimal framework that makes easy to write "php code from php code". It can be a lot useful to make CLI commands that generate scaffold codes from different needs. Let your creativity fly. Feel free to fork and do whatever you want. I done it just for fun., (*1)

Install

Via Composer, (*2)

$ composer require blacktools/metabot

Usage


/* or require 'vendor/autoload.php' */ require '../src/Code.php'; require '../src/PhpClass.php'; require '../src/PhpFile.php'; require '../src/PhpFunction.php'; require '../src/PhpMethod.php'; use Blacktools\Metabot\Base\PhpFile; use Blacktools\Metabot\Base\PhpClass; use Blacktools\Metabot\Base\PhpMethod; use Blacktools\Metabot\Base\PhpFunction; /* Create a PhpFile */ $file = new PhpFile('test.php'); /* Create a PhpClass */ $class = new PhpClass("ClassTest"); /* Set extends to a class: name */ $class->setExtends('ExtendTest'); /* Set implements to a class: name */ $class->setImplements('ImplementTest'); /* Set attribute to a class: scope / name */ $class->setAttribute('private','attributeTest'); /* Set attribute to a class: scope / name */ $class->setAttribute('private static','staticAtribute'); /* Create a PhpMethod: scope / name */ $methodTest = new PhpMethod("public","methodTest"); /* Set a parameter to a method: typehint / name */ $methodTest->setParameter(null, "foo"); /* Set a parameter to a method: typehint / name / default */ $methodTest->setParameter(null, "bar","'zoo'"); /* Set inner content to a method, using \t for tabs and \n for break lines */ $methodTest->setInner("\t\treturn null;\n"); /* Create a static PhpMethod: scope / name */ $staticMethod = new PhpMethod("public static","staticMethod"); /* Set a parameter to a method: typehint / name / default */ $staticMethod->setParameter('int', "xoo","'hoo'"); /* Set inner content to a method, using \t for tabs and \n for break lines */ $staticMethod->setInner("\t\treturn ".'$xoo'.";\n"); /* Add PhpMethod to a PhpClass */ $class->setMethod($methodTest); /* Add another PhpMethod to a PhpClass */ $class->setMethod($staticMethod); /* Create PhpFunction: name */ $function = new PhpFunction('hey'); /* Set a namespace to a PhpFile */ $file->setNamespace('Test\Namespace'); /* Set a use keyword to a PhpFile */ $file->setUse('AnotherTest\UseThis'); /* Write a PhpClass in the PhpFile */ $file->setClass($class); /* Write a PhpFunction in the PhpFile */ $file->setFunction($function); /* Get the code as string */ echo $file->getBody(); // Returns // <?php // // namespace Test\Namespace; // // use AnotherTest\UseThis; // ///** // * Class ClassTest // */ // class ClassTest extends ExtendTest implements ImplementTest // { // // private $attributeTest; // private static $staticAtribute; // // public function methodTest($foo, $bar = 'default') // { // // return null; // } // // public static function staticMethod(int $xoo = 'hoo') // { // // return $xoo; // } // // } // ///** // * Function hey // */ // function hey() // { // // }

Security

If you discover any security related issues, please email hriqueft@gmail.com instead of using the issue tracker., (*3)

Credits

License

The MIT License (MIT). Please see License File for more information., (*4)

The Versions

16/07 2018

dev-master

9999999-dev https://github.com/henriquefernandez/PhpMetabot

Php code that code php code.

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

by Henrique Fernandez Teixeira

helpers metaprogramming 1.0.0

11/05 2017

1.0.0

1.0.0.0 https://github.com/henriquefernandez/PhpMetabot

Php code that code php code.

  Sources   Download

MIT

The Requires

  • php >=5.6.0

 

by Henrique Fernandez Teixeira

helpers metaprogramming 1.0.0