smt / package-builder
将cli-php文件构建成phar包,可选参数。
v1.0.1
2015-08-14 11:47 UTC
Requires
- php: >=5.4
- smt/symfony-console-styles: ~1
- symfony/console: ~2
Requires (Dev)
- phpunit/phpunit: ~4.7
This package is not auto-updated.
Last update: 2024-09-14 18:04:11 UTC
README
收集php文件并构建成phar包。
安装
composer require smt/phackage-builder
使用方法
作为库
use Smt\Packer\Phar;
$phar = new Phar('PATH/TO/DIRECTORY/TO/PACK', 'TARGET_PACKAGE_NAME', 'INDEX_FILE');
$phar
->addBootstrapData('const YOUR_PREDEFINED_CONSTANT = 5;')
->addFilter('!/vendor')
->addCustomFilter(function (\SplFileInfo $file) { return rand(0, 1)); }) // Heh
->prepare()
->pack()
;
// Also you can use some other cool features
// $phar = ...
use Smt\Generator\ClassBuilder;
$phar
->addBootstrapData(
(new ClassBuilder('CoolClass'))
->setNamespace('Vendor\Code') // You'll be able to use it in phar!
->addProperty('prop')
->makePublic()
->makeStatic()
->setValue('\'SOME_SECRET_TOKEN_FOR_EXAMPLE\'')
->end()
->addMethod('get awesomeness') // yeah you can write exactly right this! this would be converted to "getAwesomeness"
->setReturnValue('\Grab it!\'')
->end()
->getCode()
)
->prepare()
->pack()
;
// And the last cool feature
// $phar = ...
use Smt\Generator\DefineGenerator;
$phar
->addBootstrapData(new DefineGenerator([
'SOME_CONST' => 'value',
'SomeClass.SOME_CONST' => 'value',
'SomeClass::someVar' => '\'value\'', // Warning here you MUST to write quotes if you use strings
'Some\Name\Space\SomeClass.CONSTANT' => 'value',
]))
->prepare()
->pack()
;
作为包
php bootstrap.php pack PATH/TO/DIR -dSomeClass.SOME_CONST='value'
,更多请参阅“作为库”部分的“最新酷特性”。