PHP source code generator. Can be written using a method chain.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sources
tests
.gitattributes
.gitignore
.php_cs
.scrutinizer.yml
.travis.yml
LICENSE
composer.json
phpunit.xml
readme-ja.md
readme.md
test

readme.md

PHP Source Generator

Build Status Quality Score Code Coverage Latest Stable Version Total Downloads Software License

日本語ドキュメント - Japanese

<?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