coral-media / binary-rules-evaluator
根据一组条件的选择性规则选择一个选项
0.1
2023-02-28 17:02 UTC
Requires
- php: ^7.4|^8.1
Requires (Dev)
- phpunit/phpunit: ^10.0
README
目的
评估一系列条件,避免冗余的 if/else
语句。
工作原理
拥有以下表格
我们将该表格转换为数组
$rulesTable = [ 'Result1' => [ [ 'Condition1' => true, 'Condition2' => false, 'Condition3' => false ], ], 'Result2' => [ [ 'Condition1' => false, 'Condition2' => true, 'Condition3' => true ], ], 'Result3' => [ [ 'Condition1' => null, 'Condition2' => true, 'Condition3' => false ], [ 'Condition1' => true, 'Condition2' => null, 'Condition3' => false ], ], ];
以下是一些示例输入
$input1 = [true, null, false] //matches Result3 $input2 = [null, null, false] //matches none
验证器将返回条件标签或如果没有匹配则返回 false。添加 null
以表示未知值,并且不会进行评估。
$binaryRulesEvaluator = (new BinaryRulesEvaluator()) ->setRulesTable($rulesTable); $binaryRulesEvaluator->evaluate($input1); // 'Result3' $binaryRulesEvaluator->evaluate($input2); // false
如果有多个结果共享规则集,则 validate
方法将返回第一个匹配的结果。
这个实用类有助于保持代码的一致性、整洁性和可维护性。相信我,有很多 if/elseif/else
语句的代码可能非常混乱且难以理解。请记住,几乎总是可以将任何评估集转换为 true/false
表格。