smt / package-builder

将cli-php文件构建成phar包,可选参数。

v1.0.1 2015-08-14 11:47 UTC

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',更多请参阅“作为库”部分的“最新酷特性”。