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

Breadcrumb

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

function SandboxTokenParser::parse

Overrides TokenParserInterface::parse

File

vendor/twig/twig/src/TokenParser/SandboxTokenParser.php, line 34

Class

SandboxTokenParser
Marks a section of a template as untrusted code that must be evaluated in the sandbox mode.

Namespace

Twig\TokenParser

Code

public function parse(Token $token) : Node {
    $stream = $this->parser
        ->getStream();
    trigger_deprecation('twig/twig', '3.15', \sprintf('The "sandbox" tag is deprecated in "%s" at line %d.', $stream->getSourceContext()
        ->getName(), $token->getLine()));
    $stream->expect(Token::BLOCK_END_TYPE);
    $body = $this->parser
        ->subparse([
        $this,
        'decideBlockEnd',
    ], true);
    $stream->expect(Token::BLOCK_END_TYPE);
    // in a sandbox tag, only include tags are allowed
    if (!$body instanceof IncludeNode) {
        foreach ($body as $node) {
            if ($node instanceof TextNode && ctype_space($node->getAttribute('data'))) {
                continue;
            }
            if (!$node instanceof IncludeNode) {
                throw new SyntaxError('Only "include" tags are allowed within a "sandbox" section.', $node->getTemplateLine(), $stream->getSourceContext());
            }
        }
    }
    return new SandboxNode($body, $token->getLine());
}

API Navigation

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