function OptimizerNodeVisitor::optimizePrintNode
Optimizes print nodes.
It replaces:
- "echo $this->render(Parent)Block()" with "$this->display(Parent)Block()"
1 call to OptimizerNodeVisitor::optimizePrintNode()
- OptimizerNodeVisitor::leaveNode in vendor/
twig/ twig/ src/ NodeVisitor/ OptimizerNodeVisitor.php - Called after child nodes are visited.
File
-
vendor/
twig/ twig/ src/ NodeVisitor/ OptimizerNodeVisitor.php, line 97
Class
- OptimizerNodeVisitor
- Tries to optimize the AST.
Namespace
Twig\NodeVisitorCode
private function optimizePrintNode(Node $node) : Node {
if (!$node instanceof PrintNode) {
return $node;
}
$exprNode = $node->getNode('expr');
if ($exprNode instanceof ConstantExpression && \is_string($exprNode->getAttribute('value'))) {
return new TextNode($exprNode->getAttribute('value'), $exprNode->getTemplateLine());
}
if ($exprNode instanceof BlockReferenceExpression || $exprNode instanceof ParentExpression) {
$exprNode->setAttribute('output', true);
return $exprNode;
}
return $node;
}