jumilla / source-generator
PHP源代码生成器。可以使用方法链进行编写。
1.1.2
2017-01-26 23:00 UTC
Requires
- php: >=5.5.9
- league/flysystem: ^1.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0|~5.0
This package is not auto-updated.
Last update: 2024-09-24 04:09:56 UTC
README
<?php use Jumilla\Generators\FileGenerator; $generator = FileGenerator::make('outdir-path', 'stubdir-path'); # copy $generator->sourceFile('Controller.php'); # generate in directory $name = 'notification'; $generator->directory('Services', function ($generator) use ($name) { $generator->file(ucfirst($name).'Service.php')->template('Service.php'); });
API
空白文件
$generator->file('Class1.php')->blank();
从字符串生成源文件
$generator->file('Class1.php')->text('## read');
从存根生成源文件
$generator->sourceFile('Class1.php');
从字符串(带有参数)生成源文件
$generator->file('Class2.php')->text('<?php class {$class_name} {}', [ 'class_name' => 'Class2', ]);
从存根(带有参数)生成源文件
$generator->templateFile('Class2.php');
JSON文件
$generator->json('Class2.php')->json([ 'foo' => 'FOO', 'bar' => 'BaR', ]);
.gitkeep文件
$generator->gitKeepFile();
PHP空白文件
$generator->phpBlankFile('functions.php');
PHP配置文件
$generator->phpConfigFile('config.php', [ 'theme' => 'snow', 'database' => [ 'default' => 'mysql', ], ]);
PHP源文件
$generator->phpSourceFile('Controller.php', 'class Controller {}', 'App\Http\Controllers');
获取目录遍历器
$sub = $generator->directory('app/Views'); $sub->sourceFile('layout.twig'); // ...
在Closure中遍历目录
$generator->directory('app/Views', function ($generator) { $generator->sourceFile('layout.twig'); // ... });
目录中的源文件
$generator->sourceDirectory(app/Models');
目录中的模板
$generator->templateDirectory('app/Controllers', [ '' ]);
保留目录(使用.gitkeep)
$generator->keepDirectory('app/Services');
作者
古川 文生 / Fumio Furukawa (fumio@jumilla.me)
许可证
MIT