. */ namespace OrangeHRM\Installer\Subscriber; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; use Symfony\Component\HttpKernel\KernelEvents; class ExceptionSubscriber implements EventSubscriberInterface { /** * @inheritDoc */ public static function getSubscribedEvents(): array { return [ KernelEvents::EXCEPTION => [ ['onExceptionEvent', 500], ], ]; } /** * @param ExceptionEvent $event */ public function onExceptionEvent(ExceptionEvent $event) { $exception = $event->getThrowable(); $response = $event->hasResponse() ? $event->getResponse() : new Response(); if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); $response->headers->replace($exception->getHeaders()); } else { $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); } $event->setResponse($response); } }