vendor/simpledot/cms-bundle/AWCmsBundle/EventListener/ApiRequestListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace AWCmsBundle\EventListener;
  3. use AWCmsBundle\Manager\SiteManager;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  7. /**
  8.  * Listener for the REQUEST event. Patches the HeaderBag because the
  9.  * "Authorization" header is not included in $_SERVER
  10.  */
  11. class ApiRequestListener
  12. {
  13.     /** @var  SiteManager */
  14.     private $siteManager;
  15.     
  16.     public function __construct(SiteManager $siteManager)
  17.     {
  18.         $this->siteManager $siteManager;
  19.     }
  20.     /**
  21.      * Handles REQUEST event
  22.      *
  23.      * @param GetResponseEvent $event the event
  24.      */
  25.     public function onKernelRequest(GetResponseEvent $event)
  26.     {
  27.         $this->setLocaleRequest($event->getRequest());
  28.     }
  29.     private function setLocaleRequest(Request $request){
  30.         if($this->siteManager->getSite()) {
  31.             if ($request->getLanguages() !== [] && preg_match('|^/api/|'$request->getRequestUri())) {
  32.                 $request->setLocale($request->getPreferredLanguage(array_values($this->siteManager->getSite()->getLanguagesCodes())));
  33.             }
  34.         }
  35.     }
  36. }