From ab116bb5021c03889c3aa0c1c1d6067c7a67740c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Mon, 1 Jul 2024 01:28:28 +0200 Subject: [PATCH] Use constant var name to cache trans_default_domain expression result --- .../TranslationDefaultDomainNodeVisitor.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php index a926606671cc0..3faff33c4a7af 100644 --- a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php +++ b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php @@ -30,6 +30,8 @@ */ final class TranslationDefaultDomainNodeVisitor implements NodeVisitorInterface { + private const INTERNAL_VAR_NAME = '__internal_trans_default_domain'; + private Scope $scope; public function __construct() @@ -49,9 +51,8 @@ public function enterNode(Node $node, Environment $env): Node return $node; } else { - $var = $this->getVarName(); - $name = new AssignNameExpression($var, $node->getTemplateLine()); - $this->scope->set('domain', new NameExpression($var, $node->getTemplateLine())); + $name = new AssignNameExpression(self::INTERNAL_VAR_NAME, $node->getTemplateLine()); + $this->scope->set('domain', new NameExpression(self::INTERNAL_VAR_NAME, $node->getTemplateLine())); return new SetNode(false, new Node([$name]), new Node([$node->getNode('expr')]), $node->getTemplateLine()); } @@ -111,9 +112,4 @@ private function isNamedArguments(Node $arguments): bool return false; } - - private function getVarName(): string - { - return \sprintf('__internal_%s', hash('xxh128', uniqid(mt_rand(), true))); - } }