src/EventListener/ExceptionListener.php line 16

Open in your IDE?
  1. <?php 
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. class ExceptionListener {
  6.     
  7.     protected string $appEnv;
  8.     
  9.     public function __construct(string $appEnv) {
  10.         $this->appEnv $appEnv;
  11.     }
  12.     
  13.     public function onKernelException(ExceptionEvent $event) {
  14.         switch ($this->appEnv) {
  15.             case 'dev':
  16.                 $errors = [];
  17.                 $exception $event->getThrowable();
  18.                 while ($exception) {
  19.                     $errors[] = [
  20.                         'message' => $exception->getMessage(),
  21.                         'code' => $exception->getCode(),
  22.                         'file' => $exception->getFile(),
  23.                         'line' => $exception->getLine(),
  24.                         //'trace' => $exception->getTrace(),
  25.                     ];
  26.                     $exception $exception->getPrevious();
  27.                 }
  28.                 break;
  29.             default:
  30.                 $errors = [['message' => 'Internal error']];
  31.         }
  32.         $response = new JsonResponse(['status' => 'error''errors' => $errors], 500);
  33.         $event->setResponse($response);
  34.     }
  35.     
  36. }