src/Api/EventSubscriber/ActionSubscriber.php line 14

  1. <?php
  2. namespace App\Api\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  5. use Symfony\Component\HttpKernel\KernelEvents;
  6. use App\Api\Controller\BaseController;
  7. class ActionSubscriber implements EventSubscriberInterface
  8. {
  9.     private $_controller;
  10.     public function onKernelController(ControllerEvent $event)
  11.     {
  12.         $controller $event->getController();
  13.         /*
  14.          * $controller passed can be either a class or a Closure.
  15.          * This is not usual in Symfony but it may happen.
  16.          * If it is a class, it comes in array format
  17.          */
  18.         if (!is_array($controller))
  19.             return;
  20.         if ($controller[0] instanceof BaseController)
  21.         {
  22.             $this->_controller $controller[0];
  23.             $this->_controller->beforeAction();
  24.         }
  25.     }
  26.     public static function getSubscribedEvents()
  27.     {
  28.         return array(
  29.             KernelEvents::CONTROLLER => 'onKernelController'
  30.         );
  31.     }
  32. }