octava / code-generator
PHP代码生成器
Requires
- php: ^7.1
- nikic/php-parser: ^4.2
- psr/log: ^1.1
Requires (Dev)
- phpunit/phpunit: ^7.5
Suggests
- friendsofphp/php-cs-fixer: Reformat code style according to your preferences
- monolog/monolog: Allows more advanced logging of the application flow
This package is auto-updated.
Last update: 2024-09-15 06:20:23 UTC
README
基于PHP编写的智能PHP代码生成器。
允许根据文件模板生成文件,并根据参数进行设置。此外,它还能合并类中的代码。
安装
composer require octava/code-generator --dev
预定义的模板变量
_CG_FILE_NAME_
- 文件名(例如,对于文件 TestController.php
,为 TestController
)
_CG_FILE_NAME_UCFIRST_
- 大写文件名(例如,对于文件 TestController.php
,为 TestController
)
_CG_FILE_NAME_LCFIRST_
- 小写文件名(例如,对于文件 TestController.php
,为 testController
)
_CG_FILE_BASENAME_
-> 文件名(例如,对于文件 TestController.php
,为 TestController
)
_CG_FILE_DIR_
-> 文件目录(例如,对于文件 path/to/file/TestController.php
,为 path/to/file
)
_CG_FILE_PATH_
-> 文件路径(例如,对于文件 path/to/file/TestController.php
,为 path/to/file/TestController
)
_CG_FILE_EXTENSION_
- 文件扩展名(例如,对于文件 TestController.php
,为 php
)
_CG_FILE_NAMESPACE__
- 文件命名空间(例如,对于文件 path/to/file/TestController.php
,为 path\to\file
)
使用示例
<?php use Octava\CodeGenerator\CodeGenerator; use Octava\CodeGenerator\Configuration; use Octava\CodeGenerator\Filesystem; use Octava\CodeGenerator\Processor\PhpClassProcessor; use Octava\CodeGenerator\Processor\SimpleProcessor; use Octava\CodeGenerator\TemplateFactory; use PhpParser\ParserFactory; use PhpParser\PrettyPrinter\Standard; $configuration = new Configuration('base/templates/path', 'base/output/dir'); $configuration ->setTemplateVars([]) ->addProcessor(new SimpleProcessor()) ->addProcessor(new PhpClassProcessor((new ParserFactory)->create(ParserFactory::PREFER_PHP7), new Standard())) ; $templateFactory = new TemplateFactory($configuration); $codeGenerator = new CodeGenerator($this->configuration, new Filesystem()); $codeGenerator ->generate( $templateFactory->create( 'src/Application/_CG_MODULE_/_CG_MODULE_Service.php', 'src/Application/_CG_MODULE_/_CG_MODULE_Service.php', ['_CG_MODULE_' => 'MyFavourite'] ) );