Dumping and Manipulating the AST of Expressions¶
Manipulating or inspecting the expressions created with the ExpressionLanguage component is difficult because they are plain strings. A better approach is to turn those expressions into an AST. In computer science, AST (Abstract Syntax Tree) is “a tree representation of the structure of source code written in a programming language”. In Symfony, a ExpressionLanguage AST is a set of nodes that contain PHP classes representing the given expression.
Dumping the AST¶
Call the getNodes()
method after parsing any expression to get its AST:
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
$ast = (new ExpressionLanguage())
->parse('1 + 2', [])
->getNodes()
;
// dump the AST nodes for inspection
var_dump($ast);
// dump the AST nodes as a string representation
$astAsString = $ast->dump();