src/Event/TwigSubscriber.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Event;
  3. use App\Entity\User;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
  6. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  7. class TwigSubscriber implements EventSubscriberInterface
  8. {
  9.     protected $twig;
  10.     protected $tokenStorage;
  11.     function __construct(\Twig\Environment $twigTokenStorageInterface $tokenStorage)
  12.     {
  13.         $this->twig $twig;
  14.         $this->tokenStorage $tokenStorage;
  15.     }
  16.     public static function getSubscribedEvents()
  17.     {
  18.         return [
  19.             'kernel.controller' => 'onKernelController'
  20.         ];
  21.     }
  22.     public function onKernelController(FilterControllerEvent $event)
  23.     {
  24.         $token $this->tokenStorage->getToken();
  25.         if ($token !== null) {
  26.             $user $token->getUser();
  27.             if ($user instanceof User) {
  28.                 $timezone $user->getSettingTimeZone();
  29.                 if ($timezone !== null) {
  30.                     $this->twig->getExtension('Twig\Extension\CoreExtension')->setTimezone($timezone);
  31.                 }
  32.             }
  33.         }
  34.     }
  35. }