bytehello / condition-builder
使用AST构建PHP条件代码片段
0.1.4
2020-11-12 08:34 UTC
Requires (Dev)
- nikic/php-parser: ^4.10
- phpunit/phpunit: ^7.0.0
README
condition-builder是一个库,可以帮助您构建类似以下条件代码片段:
(new Test())->check1() && (new Test())->check2()
安装
composer require bytehello/condition-builder
用法
use ByteHello\ConditionBuilder\Builder;
use ByteHello\ConditionBuilder\Condition\AndConditionGroup;
use ByteHello\ConditionBuilder\Condition\OrConditionGroup;
use ByteHello\ConditionBuilder\ConditionConfig\ConfigData;
require 'vendor/autoload.php';
$andConditionG1 = new AndConditionGroup();
$andConditionG1->addMultiple(
[
new ConfigData('Test', 'check1'),
new ConfigData('Test', 'check2'),
]
);
$orConditionG1 = new OrConditionGroup();
$orConditionG1->addMultiple(
[
new ConfigData('Test', 'check3'),
$andConditionG1
]
);
$andConditionG2 = new AndConditionGroup();
$andConditionG2->addMultiple([
new ConfigData('Test', 'check4'),
new ConfigData('Test', 'check5'),
$orConditionG1
]);
$node = Builder::generateCode($andConditionG2);
echo Builder::getPrintedStatements($node);
echo PHP_EOL;
输出为
(new Test())->check4() && ((new Test())->check5() && ((new Test())->check3() || (new Test())->check1() && (new Test())->check2()))
许可协议
bytehello/condition-builder是开源软件,受MIT许可协议许可。