src/EventSubscriber/DoctrineExtensionSubscriber.php line 45

  1. <?php
  2. namespace App\EventSubscriber;
  3. use Gedmo\Loggable\LoggableListener;
  4. use Gedmo\Blameable\BlameableListener;
  5. use Gedmo\Translatable\TranslatableListener;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  9. class DoctrineExtensionSubscriber implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var BlameableListener
  13.      */
  14.     private $blameableListener;
  15.     /**
  16.      * @var TokenStorageInterface
  17.      */
  18.     private $tokenStorage;
  19.     /**
  20.      * @var LoggableListener
  21.      */
  22.     private $loggableListener;
  23.     public function __construct(
  24.         BlameableListener $blameableListener,
  25.         TokenStorageInterface $tokenStorage,
  26.         LoggableListener $loggableListener
  27.     ) {
  28.         $this->blameableListener $blameableListener;
  29.         $this->tokenStorage $tokenStorage;
  30.         $this->loggableListener $loggableListener;
  31.     }
  32.     public static function getSubscribedEvents()
  33.     {
  34.         return [
  35.             KernelEvents::REQUEST => 'onKernelRequest'
  36.         ];
  37.     }
  38.     public function onKernelRequest(): void
  39.     {
  40.         if (
  41.             $this->tokenStorage !== null &&
  42.             $this->tokenStorage->getToken() !== null &&
  43.             $this->tokenStorage->getToken()->getUser() !== null
  44.         ) {
  45.             $this->blameableListener->setUserValue($this->tokenStorage->getToken()->getUser());
  46.         }
  47.     }
  48. }