movisio/condition-parser

Movisio 条件解析器

1.0.2 2020-01-06 10:48 UTC

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 - 首次发布