Skip to content
Snippets Groups Projects
Verified Commit c10262e1 authored by Dave Long's avatar Dave Long
Browse files

Issue #3488365 by andypost: Upgrade twig/twig to 3.15.0

parent 9392bd2f
No related branches found
No related tags found
1 merge request!11185Issue #3477324 by andypost, alexpott: Fix usage of str_getcsv() and fgetcsv() for PHP 8.4
Pipeline #351705 passed with warnings
Pipeline: drupal

#351738

    Pipeline: drupal

    #351730

      Pipeline: drupal

      #351720

        +1
        ......@@ -496,7 +496,7 @@
        "dist": {
        "type": "path",
        "url": "core",
        "reference": "60fa149dea68d06e2de45c93bf07d1d94b5394e7"
        "reference": "7369e7a4e89825b0e5c1c8c3a4beaa3a18e5f3ef"
        },
        "require": {
        "asm89/stack-cors": "^2.1",
        ......@@ -541,7 +541,7 @@
        "symfony/serializer": "^6.4",
        "symfony/validator": "^6.4",
        "symfony/yaml": "^6.4",
        "twig/twig": "^3.14.2"
        "twig/twig": "^3.15.0"
        },
        "conflict": {
        "drush/drush": "<12.4.3"
        ......@@ -4347,16 +4347,16 @@
        },
        {
        "name": "twig/twig",
        "version": "v3.14.2",
        "version": "v3.15.0",
        "source": {
        "type": "git",
        "url": "https://github.com/twigphp/Twig.git",
        "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a"
        "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02"
        },
        "dist": {
        "type": "zip",
        "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a",
        "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a",
        "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02",
        "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02",
        "shasum": ""
        },
        "require": {
        ......@@ -4410,7 +4410,7 @@
        ],
        "support": {
        "issues": "https://github.com/twigphp/Twig/issues",
        "source": "https://github.com/twigphp/Twig/tree/v3.14.2"
        "source": "https://github.com/twigphp/Twig/tree/v3.15.0"
        },
        "funding": [
        {
        ......@@ -4422,7 +4422,7 @@
        "type": "tidelift"
        }
        ],
        "time": "2024-11-07T12:36:22+00:00"
        "time": "2024-11-17T15:59:19+00:00"
        }
        ],
        "packages-dev": [
        ......
        ......@@ -61,6 +61,6 @@
        "symfony/var-dumper": "~v6.4.15",
        "symfony/var-exporter": "~v6.4.13",
        "symfony/yaml": "~v6.4.13",
        "twig/twig": "~v3.14.2"
        "twig/twig": "~v3.15.0"
        }
        }
        ......@@ -33,7 +33,7 @@
        "symfony/process": "^6.4",
        "symfony/polyfill-iconv": "^1.26",
        "symfony/yaml": "^6.4",
        "twig/twig": "^3.14.2",
        "twig/twig": "^3.15.0",
        "doctrine/annotations": "^1.14",
        "guzzlehttp/guzzle": "^7.5",
        "guzzlehttp/psr7": "^2.4.5",
        ......
        ......@@ -9,6 +9,7 @@
        use Drupal\Core\Render\Component\Exception\InvalidComponentException;
        use Drupal\Core\Theme\ComponentPluginManager;
        use Twig\Environment;
        use Twig\Node\Nodes;
        use Twig\TwigFunction;
        use Twig\Node\Expression\ConstantExpression;
        use Twig\Node\Expression\FunctionExpression;
        ......@@ -57,24 +58,24 @@ public function leaveNode(Node $node, Environment $env): ?Node {
        }
        $print_nodes[] = new PrintNode(new FunctionExpression(
        new TwigFunction('attach_library', [$env->getExtension(TwigExtension::class), 'attachLibrary']),
        new Node([new ConstantExpression($component->getLibraryName(), $line)]),
        new Nodes([new ConstantExpression($component->getLibraryName(), $line)]),
        $line
        ), $line);
        $print_nodes[] = new PrintNode(new FunctionExpression(
        new TwigFunction('add_component_context', [$env->getExtension(ComponentsTwigExtension::class), 'addAdditionalContext'], ['needs_context' => TRUE]),
        new Node([new ConstantExpression($component_id, $line)]),
        new Nodes([new ConstantExpression($component_id, $line)]),
        $line
        ), $line);
        $print_nodes[] = new PrintNode(new FunctionExpression(
        new TwigFunction('validate_component_props', [$env->getExtension(ComponentsTwigExtension::class), 'validateProps'], ['needs_context' => TRUE]),
        new Node([new ConstantExpression($component_id, $line)]),
        new Nodes([new ConstantExpression($component_id, $line)]),
        $line
        ), $line);
        // Append the print nodes to the display_start node.
        $node->setNode(
        'display_start',
        new Node([
        new Nodes([
        $node->getNode('display_start'),
        ...$print_nodes,
        ]),
        ......@@ -84,7 +85,7 @@ public function leaveNode(Node $node, Environment $env): ?Node {
        // Append the closing comment to the display_end node.
        $node->setNode(
        'display_end',
        new Node([
        new Nodes([
        new PrintNode(new ConstantExpression(sprintf('<!-- %s Component end: %s -->', $emoji, $component_id), $line), $line),
        $node->getNode('display_end'),
        ])
        ......
        ......@@ -13,7 +13,9 @@
        use Twig\Node\Expression\GetAttrExpression;
        use Twig\Node\Expression\NameExpression;
        use Twig\Node\Expression\TempNameExpression;
        use Twig\Node\Expression\Variable\ContextVariable;
        use Twig\Node\Node;
        use Twig\Node\Nodes;
        use Twig\Node\PrintNode;
        /**
        ......@@ -178,7 +180,7 @@ protected function compileString(Node $body) {
        if (!is_null($args)) {
        $argName = $args->getAttribute('name');
        }
        $expr = new NameExpression($argName, $n->getTemplateLine());
        $expr = new ContextVariable($argName, $n->getTemplateLine());
        }
        $placeholder = sprintf('%s%s', $argPrefix, $argName);
        $text .= $placeholder;
        ......@@ -198,7 +200,7 @@ protected function compileString(Node $body) {
        }
        return [
        new Node([new ConstantExpression(trim($text), $body->getTemplateLine())]),
        new Nodes([new ConstantExpression(trim($text), $body->getTemplateLine())]),
        $tokens,
        ];
        }
        ......
        ......@@ -3,6 +3,7 @@
        namespace Drupal\Core\Template;
        use Twig\Environment;
        use Twig\Node\Nodes;
        use Twig\TwigFunction;
        use Twig\Node\Expression\FilterExpression;
        use Twig\Node\Expression\FunctionExpression;
        ......@@ -50,7 +51,7 @@ public function leaveNode(Node $node, Environment $env): ?Node {
        return new $class(
        new FunctionExpression(
        new TwigFunction('render_var', [$env->getExtension(TwigExtension::class), 'renderVar']),
        new Node([$node->getNode('expr')]),
        new Nodes([$node->getNode('expr')]),
        $line
        ),
        $line
        ......
        ......@@ -7,6 +7,7 @@
        use Twig\Node\Expression\NameExpression;
        use Twig\Node\ModuleNode;
        use Twig\Node\Node;
        use Twig\Node\Nodes;
        use Twig\NodeVisitor\NodeVisitorInterface;
        /**
        ......@@ -59,7 +60,7 @@ public function leaveNode(Node $node, Environment $env): ?Node {
        // At the end of the template, check the used variables are not deprecated.
        if ($node instanceof ModuleNode) {
        if (!empty($this->usedNames)) {
        $checkNode = new Node([new TwigNodeCheckDeprecations($this->usedNames), $node->getNode('display_end')]);
        $checkNode = new Nodes([new TwigNodeCheckDeprecations($this->usedNames), $node->getNode('display_end')]);
        $node->setNode('display_end', $checkNode);
        }
        }
        ......
        ......@@ -7,6 +7,7 @@
        use Twig\Environment;
        use Twig\Node\ModuleNode;
        use Twig\Node\Node;
        use Twig\Node\Nodes;
        use Twig\NodeVisitor\NodeVisitorInterface;
        /**
        ......@@ -44,11 +45,11 @@ public function enterNode(Node $node, Environment $env): Node {
        */
        public function leaveNode(Node $node, Environment $env): ?Node {
        if ($node instanceof ModuleNode) {
        $node->setNode('display_start', new Node([
        $node->setNode('display_start', new Nodes([
        new EnterProfileNode($this->extensionName, $this->varName),
        $node->getNode('display_start'),
        ]));
        $node->setNode('display_end', new Node([
        $node->setNode('display_end', new Nodes([
        new LeaveProfileNode($this->varName),
        $node->getNode('display_end'),
        ]));
        ......
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Finish editing this message first!
        Please register or to comment