PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev1
Elementor Website Builder – more than just a page builder v3.28.0-dev1
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / vendor_prefixed / twig / src / NodeVisitor / YieldNotReadyNodeVisitor.php

YieldNotReadyNodeVisitor.php in Elementor Website Builder – more than just a page builder 3.28.0-dev1, at vendor_prefixed/twig/src/NodeVisitor/YieldNotReadyNodeVisitor.php

51 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of Twig.
5 *
6 * (c) Fabien Potencier
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace ElementorDeps\Twig\NodeVisitor;
12
13 use ElementorDeps\Twig\Attribute\YieldReady;
14 use ElementorDeps\Twig\Environment;
15 use ElementorDeps\Twig\Node\Expression\AbstractExpression;
16 use ElementorDeps\Twig\Node\Node;
17 /**
18 * @internal to be removed in Twig 4
19 */
20 final class YieldNotReadyNodeVisitor implements NodeVisitorInterface
21 {
22 private $useYield;
23 private $yieldReadyNodes = [];
24 public function __construct(bool $useYield)
25 {
26 $this->useYield = $useYield;
27 }
28 public function enterNode(Node $node, Environment $env) : Node
29 {
30 $class = \get_class($node);
31 if ($node instanceof AbstractExpression || isset($this->yieldReadyNodes[$class])) {
32 return $node;
33 }
34 if (!($this->yieldReadyNodes[$class] = (bool) (new \ReflectionClass($class))->getAttributes(YieldReady::class))) {
35 if ($this->useYield) {
36 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 #[YieldReady] attribute.', $class));
37 }
38 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 #[YieldReady] attribute.', $class);
39 }
40 return $node;
41 }
42 public function leaveNode(Node $node, Environment $env) : ?Node
43 {
44 return $node;
45 }
46 public function getPriority() : int
47 {
48 return 255;
49 }
50 }
51