systopia / expression-language-ext

Symfony ExpressionLanguage 组件的扩展

v0.1.0 2023-10-20 14:09 UTC

This package is auto-updated.

Last update: 2024-09-13 13:34:03 UTC


README

这是对 Symfony 的 ExpressionLanguage 组件 的扩展。它提供了 date_createmap 函数以及不同的 PHP 函数。为了简化使用,所有这些函数都在类 SystopiaExpressionLanguage 中可用。

date_create 函数

date_create 函数使用默认构造函数创建一个类型为 \DateTimeImmutable 的对象。

示例

$expressionLanguage = new SystopiaExpressionLanguage();
$dateTime = $expressionLanguage->evaluate('date_create("2000-01-02 03:04:05")');

map 函数

map 函数允许对数组的值(实际上是对任何可迭代的)应用一个表达式。每个键值对都作为名为 keyvalue 的变量提供给表达式。

示例

$array = [
    'x' => (object) ['a' => 1, 'b' => 2],
    'y' => (object) ['a' => 3, 'b' => 4],
];

$expressionLanguage = new SystopiaExpressionLanguage();
$mapped = $expressionLanguage->evaluate(
    'map(array, "key ~ \": \" ~ (value.a + value.b)")',
     ['array' => $array]
);

var_dump($mapped);

输出

array(2) {
  [0]=>
  string(4) "x: 3"
  [1]=>
  string(4) "y: 7"
}