movisio / condition-parser
Movisio 条件解析器
1.0.2
2020-01-06 10:48 UTC
Requires
- php: >=7.0
- ext-tokenizer: *
Requires (Dev)
- movisio/nais-cs: ^1.0
- nette/tester: ^2.2
This package is auto-updated.
Last update: 2024-09-21 15:07:50 UTC
README
一个简单的条件解析和评估库。使用后缀表达式算法将字符串解析为表达式树,可以在之后进行评估。支持为每次评估设置变量。
安装
composer require movisio/condition-parser
示例用法
$expression = ConditionParser::parse('$deleted == 0 && $id > 1');
$conditionObject = new ArrayObject($userEntityData);
$can_be_deleted = $expression->evaluate($conditionObject)
一旦解析了 $expression 对象,可以用不同的数据多次评估。由于我们主要与可以实现该接口的 ORM 实体一起使用它,并且因为目前无法同时类型提示为 array
和 \ArrayAccess
,所以 parse()
方法目前需要一个实现 \ArrayAccess 接口的对象。
v1.0.2
- 无效输入的测试
- 从 __toString() 中移除禁止的抛出
- 添加对 null 的解析
v1.0.1
- 更多的单元测试
- 修复
- 更好地处理 int 和 float 常量,包括 toString() 不引用数字
- 修复在 empty($x) 上的异常和 UnaryOperator 上的 toString()
v1.0.0 - 首次发布