koeshiro / code-generator-php
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
PHP 对象风格代码生成器的包。
示例
创建类
(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;') ) )
如果块
$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 ) );
当块
$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
使用 Fabrics 来简化与所有生成对象的工作,提高效率。
(new Fabric()); (new LogicFabric());