jaspr/expression

丰富的表达式构建器允许创建复杂的作用域表达式树,以过滤对象数组

安装量: 6,657

依赖: 1

建议: 0

安全: 0

星标: 0

分支: 0

1.1.3 2023-06-23 21:39 UTC

This package is auto-updated.

Last update: 2024-09-10 08:31:14 UTC


README

这是一个创建表达式树以过滤对象集合的工具。主要任务是通过对象的属性过滤数组中的对象。此外,我将添加SQLResolver以创建查询的WHERE过滤器。

示例

<?php
$obj1        = new \stdClass();
$obj1->field = 1;
$obj2        = new \stdClass();
$obj2->field = 2;
$arr         = [$obj1, $obj2];
$expression  = Ex::and(
    Ex::eq(Ex::field('field'), Ex::literal(1)),
    Ex::gt(Ex::field('field'), Ex::literal(0))
);
$resolver    = new ClosureResolver();
$filter      = $resolver->dispatch($expression);
$result      = array_filter($arr, $filter);

结果

array(1) {
  [0] =>
  class stdClass#410 (1) {
    public $field =>
    int(1)
  }
}