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

Breadcrumb

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

function EscaperNodeVisitor::leaveNode

Overrides NodeVisitorInterface::leaveNode

File

vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php, line 68

Class

EscaperNodeVisitor
@author Fabien Potencier <fabien@symfony.com>

Namespace

Twig\NodeVisitor

Code

public function leaveNode(Node $node, Environment $env) : ?Node {
    if ($node instanceof ModuleNode) {
        $this->defaultStrategy = false;
        $this->safeVars = [];
        $this->blocks = [];
    }
    elseif ($node instanceof FilterExpression) {
        return $this->preEscapeFilterNode($node, $env);
    }
    elseif ($node instanceof PrintNode && false !== ($type = $this->needEscaping())) {
        $expression = $node->getNode('expr');
        if ($expression instanceof ConditionalExpression) {
            $this->escapeConditional($expression, $env, $type);
        }
        else {
            $node->setNode('expr', $this->escapeExpression($expression, $env, $type));
        }
        return $node;
    }
    if ($node instanceof AutoEscapeNode || $node instanceof BlockNode) {
        array_pop($this->statusStack);
    }
    elseif ($node instanceof BlockReferenceNode) {
        $this->blocks[$node->getAttribute('name')] = $this->needEscaping();
    }
    return $node;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal