Сброс и манипуляция АСД выражений
Сброс и манипуляция АСД выражений
Манипуляция или исследование выражений, созданных компонентом ExpressionLanguage сложна, так как они являются простыми строками. Лучшим подходом будет превратить эти выражения в АСД. В компьютерных технологиях, АСД (Абстрактное синтаксическое дерево) - это "представление структуры исходного кода, написанного на языке программирования, в виде дерева". ВSymfony, АСД ExpressionLanguage - это набор узлов, содержащих PHP классы, представляющие заданное выражение.
Сброс АСД
Вызовите метод getNodes() после анализа любого выражения, чтобы получить его АСД:
1 2 3 4 5 6 7 8 9 10 11 12
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
$ast = (new ExpressionLanguage())
->parse('1 + 2', array())
->getNodes()
;
// сброс узлов АСД для инспекции
var_dump($ast);
// сброс узлов АСД в виде строк
$astAsString = $ast->dump();
Манипуляция АСД
Узлы АСД также можно сбросить в PHP массив узлов, чтобы позволить манипуляции с ними. Вызовите метод toArray(), чтобы превратить АСД в массив:
1 2 3 4 5 6 7
// ...
$astAsArray = (new ExpressionLanguage())
->parse('1 + 2', array())
->getNodes()
->toArray()
;