Skip to content

bytehello/condition-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

condition-builder is a library help you build condition code snippet like

(new Test())->check1() && (new Test())->check2()

Install


composer require bytehello/condition-builder

Usage

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;

output is


(new Test())->check4() && ((new Test())->check5() && ((new Test())->check3() || (new Test())->check1() && (new Test())->check2()))

License

The bytehello/condition-builder is open-source software licensed under the MIT license.

About

build condition php code with ast 基于AST生成PHP条件判断代码片段

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages