src/Aqarmap/Bundle/ApiBundle/EventListener/LocaleEventSubscriber.php line 17

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\ApiBundle\EventListener;
  3. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. class LocaleEventSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
  6. {
  7.     private ParameterBagInterface $params;
  8.     public function __construct(ParameterBagInterface $params)
  9.     {
  10.         $this->params $params;
  11.     }
  12.     public function onKernelRequest(RequestEvent $event): void
  13.     {
  14.         if (!$event->isMainRequest()) {
  15.             return;
  16.         }
  17.         $request $event->getRequest();
  18.         if (!preg_match('/^aqarmap_api_/i'$request->attributes->get('_route'))) {
  19.             return;
  20.         }
  21.         $request->setLocale($request->getPreferredLanguage($this->params->get('jms_i18n_routing.locales')));
  22.     }
  23.     /**
  24.      * @return array<string, mixed>
  25.      */
  26.     public static function getSubscribedEvents(): array
  27.     {
  28.         return [\Symfony\Component\HttpKernel\KernelEvents::REQUEST => 'onKernelRequest'];
  29.     }
  30. }