systopia / expression-language-ext
Symfony ExpressionLanguage 组件的扩展
v0.1.0
2023-10-20 14:09 UTC
Requires
- php: ^7.4 || ^8
- symfony/expression-language: ^5 || ^6
README
这是对 Symfony 的 ExpressionLanguage 组件 的扩展。它提供了 date_create 和 map 函数以及不同的 PHP 函数。为了简化使用,所有这些函数都在类 SystopiaExpressionLanguage 中可用。
date_create
函数
date_create
函数使用默认构造函数创建一个类型为 \DateTimeImmutable
的对象。
示例
$expressionLanguage = new SystopiaExpressionLanguage(); $dateTime = $expressionLanguage->evaluate('date_create("2000-01-02 03:04:05")');
map
函数
map
函数允许对数组的值(实际上是对任何可迭代的)应用一个表达式。每个键值对都作为名为 key
和 value
的变量提供给表达式。
示例
$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"
}