src/Listener/ExceptionListener.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Listener;
  3. use Psr\Log\LoggerInterface;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  6. use Twig\Environment as Twig;
  7. use Twig\Error\RuntimeError;
  8. class ExceptionListener
  9. {
  10.     protected $twig;
  11.     protected $env;
  12.     protected $logger;
  13.     public function __construct(Twig $twig$envLoggerInterface  $logger)
  14.     {
  15.         $this->twig $twig;
  16.         $this->env $env;
  17.         $this->logger $logger;
  18.     }
  19.     public function onKernelException(ExceptionEvent $event)
  20.     {
  21.         $exception $event->getThrowable();
  22.         if ( $this->env == 'prod') {
  23.             if ($exception instanceof \Error || $exception instanceof RuntimeError) {
  24.                 $template $this->twig->render('@Twig/Exception/error500.html.twig');
  25.                 $response = new Response();
  26.                 $response->setContent($template);
  27.                 $event->setResponse($response);
  28.                 $this->logger->error($exception->getMessage());
  29.             }
  30.         }
  31.     }
  32. }