PHP Source Generator
<?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
blank file
$generator->file('Class1.php')->blank();
source file from string
$generator->file('Class1.php')->text('## read');
source file from stub
$generator->sourceFile('Class1.php');
source file from string (with arguments)
$generator->file('Class2.php')->text('<?php class {$class_name} {}', [
'class_name' => 'Class2',
]);
source file from stub (with arguments)
$generator->templateFile('Class2.php');
json file
$generator->json('Class2.php')->json([
'foo' => 'FOO',
'bar' => 'BaR',
]);
.gitkeep file
$generator->gitKeepFile();
PHP blank file
$generator->phpBlankFile('functions.php');
PHP config file
$generator->phpConfigFile('config.php', [
'theme' => 'snow',
'database' => [
'default' => 'mysql',
],
]);
PHP source file
$generator->phpSourceFile('Controller.php', 'class Controller {}', 'App\Http\Controllers');
get directory walker
$sub = $generator->directory('app/Views');
$sub->sourceFile('layout.twig');
// ...
directory walk in Closure
$generator->directory('app/Views', function ($generator) {
$generator->sourceFile('layout.twig');
// ...
});
sources in directory
$generator->sourceDirectory(app/Models');
templates in directory
$generator->templateDirectory('app/Controllers', [
''
]);
keep directory (use .gitkeep)
$generator->keepDirectory('app/Services');
Author
古川 文生 / Fumio Furukawa (fumio@jumilla.me)
Licnese
MIT