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

Breadcrumb

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

class TempNameExpression

Hierarchy

  • class \Twig\Node\Node implements \Twig\Node\Countable, \Twig\Node\IteratorAggregate
    • class \Twig\Node\Expression\AbstractExpression extends \Twig\Node\Node
      • class \Twig\Node\Expression\TempNameExpression extends \Twig\Node\Expression\AbstractExpression

Expanded class hierarchy of TempNameExpression

3 files declare their use of TempNameExpression
LocalVariable.php in vendor/twig/twig/src/Node/Expression/Variable/LocalVariable.php
TemplateVariable.php in vendor/twig/twig/src/Node/Expression/Variable/TemplateVariable.php
TwigNodeTrans.php in core/lib/Drupal/Core/Template/TwigNodeTrans.php

File

vendor/twig/twig/src/Node/Expression/TempNameExpression.php, line 17

Namespace

Twig\Node\Expression
View source
class TempNameExpression extends AbstractExpression {
    public const RESERVED_NAMES = [
        'varargs',
        'context',
        'macros',
        'blocks',
        'this',
    ];
    public function __construct(string|int|null $name, int $lineno) {
        // All names supported by ExpressionParser::parsePrimaryExpression() should be excluded
        if ($name && \in_array(strtolower($name), [
            'true',
            'false',
            'none',
            'null',
        ])) {
            throw new SyntaxError(\sprintf('You cannot assign a value to "%s".', $name), $lineno);
        }
        if (self::class === static::class) {
            trigger_deprecation('twig/twig', '3.15', 'The "%s" class is deprecated.', self::class);
        }
        if (null !== $name && (is_int($name) || ctype_digit($name))) {
            $name = (int) $name;
        }
        elseif (in_array($name, self::RESERVED_NAMES)) {
            $name = "͜" . $name;
        }
        parent::__construct([], [
            'name' => $name,
        ], $lineno);
    }
    public function compile(Compiler $compiler) : void {
        if (null === $this->getAttribute('name')) {
            $this->setAttribute('name', $compiler->getVarName());
        }
        $compiler->raw('$' . $this->getAttribute('name'));
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
AbstractExpression::hasExplicitParentheses public function
AbstractExpression::isGenerator public function
AbstractExpression::setExplicitParentheses public function
Node::$attributeNameDeprecations private property @var array<string, NameDeprecation>
Node::$attributes protected property
Node::$lineno protected property
Node::$nodeNameDeprecations private property @var array<string, NameDeprecation>
Node::$nodes protected property
Node::$sourceContext private property
Node::$tag protected property
Node::count public function
Node::deprecateAttribute public function
Node::deprecateNode public function
Node::getAttribute public function
Node::getIterator public function
Node::getNode public function
Node::getNodeTag public function
Node::getSourceContext public function
Node::getTemplateLine public function
Node::getTemplateName public function
Node::hasAttribute public function
Node::hasNode public function
Node::removeAttribute public function
Node::removeNode public function
Node::setAttribute public function
Node::setNode public function 1
Node::setNodeTag public function @internal
Node::setSourceContext public function
Node::__toString public function
TempNameExpression::compile public function Overrides Node::compile 1
TempNameExpression::RESERVED_NAMES public constant
TempNameExpression::__construct public function Overrides Node::__construct
RSS feed
Powered by Drupal