From 2ba8b8f15eb157e95e180af35a73e74819f8e2d2 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 28 May 2019 11:03:44 +0200 Subject: [PATCH 1/2] [Bridge\Twig] lazy load TranslatorTrait --- .../Twig/Extension/TranslationExtension.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php index b8a0eb6154..46fdd9e7b7 100644 --- a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php @@ -33,12 +33,6 @@ use Twig\TwigFilter; */ class TranslationExtension extends AbstractExtension { - use TranslatorTrait { - getLocale as private; - setLocale as private; - trans as private doTrans; - } - private $translator; private $translationNodeVisitor; @@ -115,7 +109,9 @@ class TranslationExtension extends AbstractExtension $arguments['%count%'] = $count; } if (null === $this->translator) { - return $this->doTrans($message, $arguments, $domain, $locale); + $this->translator = new class() implements TranslatorInterface { + use TranslatorTrait; + }; } return $this->translator->trans($message, $arguments, $domain, $locale); @@ -127,8 +123,11 @@ class TranslationExtension extends AbstractExtension public function transchoice($message, $count, array $arguments = [], $domain = null, $locale = null) { if (null === $this->translator) { - return $this->doTrans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale); + $this->translator = new class() implements TranslatorInterface { + use TranslatorTrait; + }; } + if ($this->translator instanceof TranslatorInterface) { return $this->translator->trans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale); } From a7bfe26fcc61b800f65016de1b3cf9f7d91de1d9 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 28 May 2019 11:05:44 +0200 Subject: [PATCH 2/2] fix tests --- .../Component/DependencyInjection/Tests/ServiceLocatorTest.php | 2 +- .../Component/Translation/Tests/IdentityTranslatorTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php b/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php index 9c0962880f..8d55936712 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/ServiceLocatorTest.php @@ -14,7 +14,7 @@ namespace Symfony\Component\DependencyInjection\Tests; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ServiceLocator; use Symfony\Contracts\Service\ServiceSubscriberInterface; -use Symfony\Contracts\Tests\Service\ServiceLocatorTest as BaseServiceLocatorTest; +use Symfony\Contracts\Service\Test\ServiceLocatorTest as BaseServiceLocatorTest; class ServiceLocatorTest extends BaseServiceLocatorTest { diff --git a/src/Symfony/Component/Translation/Tests/IdentityTranslatorTest.php b/src/Symfony/Component/Translation/Tests/IdentityTranslatorTest.php index be0a548aa1..cf618d95a2 100644 --- a/src/Symfony/Component/Translation/Tests/IdentityTranslatorTest.php +++ b/src/Symfony/Component/Translation/Tests/IdentityTranslatorTest.php @@ -12,7 +12,7 @@ namespace Symfony\Component\Translation\Tests; use Symfony\Component\Translation\IdentityTranslator; -use Symfony\Contracts\Tests\Translation\TranslatorTest; +use Symfony\Contracts\Translation\Test\TranslatorTest; class IdentityTranslatorTest extends TranslatorTest {