src/EventListener/ExceptionListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\KernelEvents;
  4. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  5. use App\Services\ErrorHandling\ApiErrorResponseHandler;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class ExceptionListener implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var ApiErrorResponseHandler
  11.      */
  12.     private $errorResponseHandler;
  13.     public function __construct(ApiErrorResponseHandler $errorResponseHandler)
  14.     {
  15.         $this->errorResponseHandler $errorResponseHandler;
  16.     }
  17.     public function onKernelException(ExceptionEvent $event): void
  18.     {
  19.         $event->setResponse($this->errorResponseHandler->handle($event->getThrowable()));
  20.         $event->allowCustomResponseCode();
  21.     }
  22.     public static function getSubscribedEvents(): array
  23.     {
  24.         return [
  25.             KernelEvents::EXCEPTION => ['onKernelException', -100],
  26.         ];
  27.     }
  28. }