[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.143.7.53: ~ $
<?php

/*
 * This file is part of Twig.
 *
 * (c) Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Twig\TokenParser;

use Twig\Error\SyntaxError;
use Twig\Node\Expression\ConstantExpression;
use Twig\Node\Node;
use Twig\Token;

/**
 * Imports blocks defined in another template into the current template.
 *
 *    {% extends "base.html" %}
 *
 *    {% use "blocks.html" %}
 *
 *    {% block title %}{% endblock %}
 *    {% block content %}{% endblock %}
 *
 * @see https://twig.symfony.com/doc/templates.html#horizontal-reuse for details.
 */
final class UseTokenParser extends AbstractTokenParser
{
    public function parse(Token $token)
    {
        $template = $this->parser->getExpressionParser()->parseExpression();
        $stream = $this->parser->getStream();

        if (!$template instanceof ConstantExpression) {
            throw new SyntaxError('The template references in a "use" statement must be a string.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
        }

        $targets = [];
        if ($stream->nextIf('with')) {
            do {
                $name = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue();

                $alias = $name;
                if ($stream->nextIf('as')) {
                    $alias = $stream->expect(/* Token::NAME_TYPE */ 5)->getValue();
                }

                $targets[$name] = new ConstantExpression($alias, -1);

                if (!$stream->nextIf(/* Token::PUNCTUATION_TYPE */ 9, ',')) {
                    break;
                }
            } while (true);
        }

        $stream->expect(/* Token::BLOCK_END_TYPE */ 3);

        $this->parser->addTrait(new Node(['template' => $template, 'targets' => new Node($targets)]));

        return new Node();
    }

    public function getTag()
    {
        return 'use';
    }
}

class_alias('Twig\TokenParser\UseTokenParser', 'Twig_TokenParser_Use');

Filemanager

Name Type Size Permission Actions
AbstractTokenParser.php File 641 B 0644
ApplyTokenParser.php File 1.42 KB 0644
AutoEscapeTokenParser.php File 1.58 KB 0644
BlockTokenParser.php File 2.46 KB 0644
DeprecatedTokenParser.php File 1013 B 0644
DoTokenParser.php File 801 B 0644
EmbedTokenParser.php File 2.24 KB 0644
ExtendsTokenParser.php File 1.37 KB 0644
FilterTokenParser.php File 1.86 KB 0644
FlushTokenParser.php File 735 B 0644
ForTokenParser.php File 4.95 KB 0644
FromTokenParser.php File 1.67 KB 0644
IfTokenParser.php File 2.47 KB 0644
ImportTokenParser.php File 1.18 KB 0644
IncludeTokenParser.php File 1.62 KB 0644
MacroTokenParser.php File 1.89 KB 0644
SandboxTokenParser.php File 1.79 KB 0644
SetTokenParser.php File 2.05 KB 0644
SpacelessTokenParser.php File 1.53 KB 0644
TokenParserInterface.php File 1.12 KB 0644
UseTokenParser.php File 1.97 KB 0644
WithTokenParser.php File 1.29 KB 0644