src/EventListener/Exception/ExceptionListener.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\EventListener\Exception;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  5. use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
  6. class ExceptionListener
  7. {
  8.     public function onKernelException(ExceptionEvent $event)
  9.     {
  10.         // You get the exception object from the received event
  11.         $exception $event->getThrowable();
  12.         $message sprintf(
  13.             'My Error says: %s with code: %s',
  14.             $exception->getMessage(),
  15.             $exception->getCode()
  16.         );
  17.         // Customize your response object to display the exception details
  18.         $response = new Response();
  19.         $response->setContent($message);
  20.         // HttpExceptionInterface is a special type of exception that
  21.         // holds status code and header details
  22.         if ($exception instanceof HttpExceptionInterface) {
  23.             $response->setStatusCode($exception->getStatusCode());
  24.             $response->headers->replace($exception->getHeaders());
  25.         } else {
  26.             $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR);
  27.         }
  28.         // sends the modified response object to the event
  29.         $event->setResponse($response);
  30.     }
  31. }