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

Breadcrumb

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

class YieldNotReadyNodeVisitor

@internal to be removed in Twig 4

Hierarchy

  • class \Twig\NodeVisitor\YieldNotReadyNodeVisitor implements \Twig\NodeVisitor\NodeVisitorInterface

Expanded class hierarchy of YieldNotReadyNodeVisitor

1 file declares its use of YieldNotReadyNodeVisitor
YieldNotReadyExtension.php in vendor/twig/twig/src/Extension/YieldNotReadyExtension.php

File

vendor/twig/twig/src/NodeVisitor/YieldNotReadyNodeVisitor.php, line 22

Namespace

Twig\NodeVisitor
View source
final class YieldNotReadyNodeVisitor implements NodeVisitorInterface {
    private $yieldReadyNodes = [];
    public function __construct(bool $useYield) {
    }
    public function enterNode(Node $node, Environment $env) : Node {
        $class = \get_class($node);
        if ($node instanceof AbstractExpression || isset($this->yieldReadyNodes[$class])) {
            return $node;
        }
        if (!($this->yieldReadyNodes[$class] = (bool) (new \ReflectionClass($class))->getAttributes(YieldReady::class))) {
            if ($this->useYield) {
                throw new \LogicException(\sprintf('You cannot enable the "use_yield" option of Twig as node "%s" is not marked as ready for it; please make it ready and then flag it with the #[\\Twig\\Attribute\\YieldReady] attribute.', $class));
            }
            trigger_deprecation('twig/twig', '3.9', 'Twig node "%s" is not marked as ready for using "yield" instead of "echo"; please make it ready and then flag it with the #[\\Twig\\Attribute\\YieldReady] attribute.', $class);
        }
        return $node;
    }
    public function leaveNode(Node $node, Environment $env) : ?Node {
        return $node;
    }
    public function getPriority() : int {
        return 255;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
YieldNotReadyNodeVisitor::$yieldReadyNodes private property
YieldNotReadyNodeVisitor::enterNode public function Called before child nodes are visited. Overrides NodeVisitorInterface::enterNode
YieldNotReadyNodeVisitor::getPriority public function Returns the priority for this visitor. Overrides NodeVisitorInterface::getPriority
YieldNotReadyNodeVisitor::leaveNode public function Called after child nodes are visited. Overrides NodeVisitorInterface::leaveNode
YieldNotReadyNodeVisitor::__construct public function
RSS feed
Powered by Drupal