diff --git a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php index 46fdd9e7b779a..9e927ecdf0320 100644 --- a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php @@ -49,11 +49,19 @@ public function __construct($translator = null, NodeVisitorInterface $translatio } /** - * @deprecated since Symfony 4.2 + * @return TranslatorInterface|null */ public function getTranslator() { - @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED); + if (null === $this->translator) { + if (!interface_exists(TranslatorInterface::class)) { + throw new \LogicException(sprintf('You cannot use the "%s" if the Translation Contracts are not available. Try running "composer require symfony/translation".', __CLASS__)); + } + + $this->translator = new class() implements TranslatorInterface { + use TranslatorTrait; + }; + } return $this->translator; } @@ -108,13 +116,8 @@ public function trans($message, array $arguments = [], $domain = null, $locale = if (null !== $count) { $arguments['%count%'] = $count; } - if (null === $this->translator) { - $this->translator = new class() implements TranslatorInterface { - use TranslatorTrait; - }; - } - return $this->translator->trans($message, $arguments, $domain, $locale); + return $this->getTranslator()->trans($message, $arguments, $domain, $locale); } /** @@ -122,17 +125,13 @@ public function trans($message, array $arguments = [], $domain = null, $locale = */ public function transchoice($message, $count, array $arguments = [], $domain = null, $locale = null) { - if (null === $this->translator) { - $this->translator = new class() implements TranslatorInterface { - use TranslatorTrait; - }; - } + $translator = $this->getTranslator(); - if ($this->translator instanceof TranslatorInterface) { - return $this->translator->trans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale); + if ($translator instanceof TranslatorInterface) { + return $translator->trans($message, array_merge(['%count%' => $count], $arguments), $domain, $locale); } - return $this->translator->transChoice($message, $count, array_merge(['%count%' => $count], $arguments), $domain, $locale); + return $translator->transChoice($message, $count, array_merge(['%count%' => $count], $arguments), $domain, $locale); } /**
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: