Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. OptimizerNodeVisitor.php

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\NodeVisitor

Code

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;
}
RSS feed
Powered by Drupal