vendor/rawafed/admin-bundle/EventListener/ExceptionHandler.php line 31

Open in your IDE?
  1. <?php
  2. namespace Rawafed\AdminBundle\EventListener;
  3. use Psr\Log\LoggerInterface;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  6. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  7. use Symfony\Component\Templating\EngineInterface;
  8. use Rawafed\AdminBundle\Classes\AdminController;
  9. class ExceptionHandler
  10. {
  11.     private $enviroment;
  12.     private $templating;
  13.     private $logger;
  14.     private $controller;
  15.     public function __construct($enviromentEngineInterface $templatingLoggerInterface $logger)
  16.     {
  17.         $this->enviroment $enviroment;
  18.         $this->templating $templating;
  19.         $this->logger $logger;
  20.     }
  21.     private function render($view, array $parameters = array(), Response $response null)
  22.     {
  23.         return $this->templating->renderResponse($view$parameters$response);
  24.     }
  25.     public function onKernelController(ControllerEvent $event)
  26.     {
  27.         $this->controller $event->getController();
  28.     }
  29.     public function onKernelException(ExceptionEvent $event)
  30.     {
  31.         if ($this->enviroment != 'prod') {
  32.             return;
  33.         }
  34.         $exception $event->getThrowable();
  35.         $this->logger->error($exception);
  36.         if ($this->controller) {
  37.             if ($this->controller[0] instanceof AdminController) {
  38.                 $response $this->render('AdminBundle:Admin:exception.html.twig', [
  39.                     'exception' => $exception
  40.                 ]);
  41.                 $event->setResponse($response);
  42.             }
  43.         }
  44.     }
  45. }