tankfairies / rulesengine
高速规则引擎
2.1
2024-03-20 00:02 UTC
Requires
- php: ^8.2
Requires (Dev)
README
Rulesengine
将条件语句转换为优化的资产规则。这使得可以在文件或数据库中存储规则。
如果规则可以由用户自定义,则正确验证规则非常重要。
这是因为规则被转换为代码以使其快速。
如果有什么功能您想看到,请告诉我,我会调查。
安装
使用 Composer 安装
composer require tankfairies/rulesengine
性能
这些测试是在一台配备了32GB内存的Mac M1 Max上运行的。
运行100,000次执行5次:-
1 => 1.0200 seconds
2 => 1.0146 seconds
3 => 1.0219 seconds
4 => 1.0226 seconds
5 => 1.0206 seconds
一旦构建了规则,性能就会提高:-
1 => 1.0178 seconds
2 => 1.0135 seconds
3 => 1.0180 seconds
4 => 1.0110 seconds
5 => 1.0097 seconds
平均每次大约有100000次调用。性能测试使用 tankfairies/benchmark 进行。
用法
实例化库的新实例
use Tankfairies\Rulesengine\RulesEngine; $this->rulesEngine = new RulesEngine('storage/rules'); $rulesEngine->setRule('var == 21'); $result = $rulesEngine->evaluate(['var' => 21]);
以下运算符可用于规则中:-
- AND
- OR
- XOR
以下条件可用于规则中:-
- ==
- !-
- <=
- >=
- <
- >
- IN
- !IN
示例规则
var == val OR var == 22 ['var' => 20, 'val' => 20]
var !IN val ['var' => 20, 'val' => [21, 22, 23]]
var IN val AND var2 == "yes" ['var' => 22, 'val' => [21, 22, 23], 'var2' => 'yes']
var == 100 XOR group IN [123456, 456456] ['var' => '100', 'group' => 12121]
版权和许可证
tankfairies/rulesengine 库版权所有 (c) 2019 Tankfairies (https://tankfairies.com),并许可在 MIT 许可证(MIT)下使用。