src/Kernel.php line 19

Open in your IDE?
  1. <?php
  2. namespace App;
  3. use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
  4. use Symfony\Component\HttpKernel\Kernel as BaseKernel;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\HttpFoundation\JsonResponse;
  8. use Throwable;
  9. class Kernel extends BaseKernel
  10. {
  11.     use MicroKernelTrait;
  12.     public function handle(Request $requestint $type self::MAIN_REQUESTbool $catch true): Response
  13.     {
  14.         try {
  15.             return parent::handle($request$typefalse);
  16.         } catch (Throwable $exception) {
  17.             $statusCode method_exists($exception'getStatusCode')
  18.                 ? $exception->getStatusCode()
  19.                 : 500;
  20.             $response = [
  21.                 'message' => $this->getEnvironment() === 'dev'
  22.                     $exception->getMessage()
  23.                     : 'An error occurred',
  24.                 'code' => $statusCode
  25.             ];
  26.             if ($this->getEnvironment() === 'dev') {
  27.                 $response['error']['file'] = $exception->getFile();
  28.                 $response['error']['line'] = $exception->getLine();
  29.                 $response['error']['trace'] = $exception->getTraceAsString();
  30.             }
  31.             return new JsonResponse($response$statusCode);
  32.         }
  33.     }
  34. }