koeshiro / code-generator-php
A package for object style code generation in php.
1.0.4
2023-03-19 21:31 UTC
Requires (Dev)
- laravel/pint: *
- phpstan/phpstan: ^1.10
- phpunit/phpunit: >=9.5
- symfony/yaml: ^6.2
README
A package for object style code generation in php.
Examples
Creating class
(new ClassTemplate()) ->setName('Test') ->addProperty( (new PropertyTemplate()) ->setName('testProp') ->setScope('protected') ->setType('?string') )->addMethod( (new MethodTemplate()) ->setScope('public') ->addArgument( (new ArgumentTemplate()) ->setName('data') ->setType('string') )->setName( 'setTestProp' )->setReturnType( 'void' )->setBlock( (new BlockTemplate()) ->addLine('$this->testProp = $data') ) )->addMethod( (new MethodTemplate()) ->setScope('public') ->addArgument( (new ArgumentTemplate()) ->setName('test') ->setType('string') )->setName( 'testFun' )->setReturnType( 'string' )->setBlock( (new BlockTemplate()) ->addLine('return \'test\'.$test;') ) )
If block
$aVariable = (new GetTemplate())->setVariable((new VariableTemplate())->setName('a')); $bVariable = (new GetTemplate())->setVariable((new VariableTemplate())->setName('b')); $logicBlock = (new LogicBlockTemplate())->logic( (new LogicTemplate())->setLogic( "<", $aVariable, $bVariable ) )->and()->logic( (new LogicTemplate())->setLogic( ">", $aVariable, $bVariable ) )->or()->logic( (new LogicTemplate())->setLogic( "===", $aVariable, $bVariable ) );
While block
$iVariable = (new GetTemplate())->setVariable((new VariableTemplate())->setName('i')); $countVariable = (new GetTemplate())->setVariable((new VariableTemplate())->setName('count')); $whileTemplate = (new WhileTemplate()) ->setLogic( (new LogicBlockTemplate()) ->logic( (new LogicTemplate()) ->setLogic( '<', $iVariable, $countVariable ) ) ) ->setBlock( (new BlockTemplate())->addLine('$i++;') );
Fabric
Use Fabrics for ease and fast work with all generator object
(new Fabric()); (new LogicFabric());