src/EventListener/LocaleListener.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Contracts\Translation\TranslatorInterface;
  6. /**
  7.  * Class LocaleListener
  8.  * @package App\EventListener
  9.  */
  10. class LocaleListener
  11. {
  12.     /**
  13.      * @var TranslatorInterface
  14.      */
  15.     private $translator;
  16.     /**
  17.      * @var
  18.      */
  19.     private $containerBag;
  20.     /**
  21.      * LocaleListener constructor.
  22.      * @param TranslatorInterface $translator
  23.      */
  24.     public function __construct(TranslatorInterface $translatorContainerBagInterface $containerBag)
  25.     {
  26.         $this->translator $translator;
  27.         $this->containerBag $containerBag;
  28.     }
  29.     /**
  30.      * @param RequestEvent $event
  31.      */
  32.     public function onKernelRequest(RequestEvent $event): void
  33.     {
  34.         $languageCookieIdentifier $this->containerBag->get('language_cookie_identifier');
  35.         if (!$cookieLangCode $event->getRequest()->cookies->get($languageCookieIdentifier)) {
  36.             return;
  37.         }
  38.         if ($this->translator->getLocale() !== $cookieLangCode) {
  39.             $this->translator->setLocale($cookieLangCode);
  40.         }
  41.     }
  42. }