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.
Call the getNodes() method after parsing any expression to get its AST:
1 2 3 4 5 6 7 8 9 10 11 12
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();