You are here

class TranslatorListener in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-kernel/EventListener/TranslatorListener.php \Symfony\Component\HttpKernel\EventListener\TranslatorListener

Synchronizes the locale between the request and the translator.

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

Expanded class hierarchy of TranslatorListener

1 file declares its use of TranslatorListener
TranslatorListenerTest.php in vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php

File

vendor/symfony/http-kernel/EventListener/TranslatorListener.php, line 27

Namespace

Symfony\Component\HttpKernel\EventListener
View source
class TranslatorListener implements EventSubscriberInterface {
  private $translator;
  private $requestStack;
  public function __construct(TranslatorInterface $translator, RequestStack $requestStack) {
    $this->translator = $translator;
    $this->requestStack = $requestStack;
  }
  public function onKernelRequest(GetResponseEvent $event) {
    $this
      ->setLocale($event
      ->getRequest());
  }
  public function onKernelFinishRequest(FinishRequestEvent $event) {
    if (null === ($parentRequest = $this->requestStack
      ->getParentRequest())) {
      return;
    }
    $this
      ->setLocale($parentRequest);
  }
  public static function getSubscribedEvents() {
    return array(
      // must be registered after the Locale listener
      KernelEvents::REQUEST => array(
        array(
          'onKernelRequest',
          10,
        ),
      ),
      KernelEvents::FINISH_REQUEST => array(
        array(
          'onKernelFinishRequest',
          0,
        ),
      ),
    );
  }
  private function setLocale(Request $request) {
    try {
      $this->translator
        ->setLocale($request
        ->getLocale());
    } catch (\InvalidArgumentException $e) {
      $this->translator
        ->setLocale($request
        ->getDefaultLocale());
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TranslatorListener::$requestStack private property
TranslatorListener::$translator private property
TranslatorListener::getSubscribedEvents public static function Returns an array of event names this subscriber wants to listen to. Overrides EventSubscriberInterface::getSubscribedEvents
TranslatorListener::onKernelFinishRequest public function
TranslatorListener::onKernelRequest public function
TranslatorListener::setLocale private function
TranslatorListener::__construct public function