src/Controller/ErrorController.php line 14

  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\HeaderBag;
  7. class ErrorController extends AbstractController
  8. {    
  9.     private NotFoundHttpException $Exception;
  10.     private HeaderBag $Header;
  11.     
  12.     public function show(Request $request){
  13.         
  14.         $exc $request->attributes->get('exception');
  15.         $error = [];
  16.         $message 'Erro desconhecido';
  17.         if(!($exc instanceof NotFoundHttpException)) {            
  18.             $message 'Erros no código ';
  19.             $error[] = 'Arquivo: '.$exc->getFile();
  20.             $error[] = 'Linha: '.$exc->getLine();
  21.             $error[] = 'Erro: '.$exc->getMessage();
  22.             $return = [
  23.                 'message' => $message,
  24.                 'error' => $error
  25.             ];
  26.             return $this->render('error/default.html.twig'$return);
  27.         }
  28.         $this->Exception $exc;
  29.         $this->Header $request->headers;
  30.         
  31.         switch($this->Exception->getStatusCode()){
  32.             case 404
  33.                 $message 'Página não encontrada';
  34.                 $page '404.html.twig';
  35.                 $error[] = 'Page not found';
  36.                 break;
  37.         }
  38.         
  39.         $return = [
  40.             'message' => $message,
  41.             'error' => $error
  42.         ];
  43.         
  44.         if($this->Header->get('Content-Type') == 'application/json'){
  45.             return $this->json($return);
  46.         }
  47.         
  48.         return $this->render('error/'.$page$return);
  49.     }
  50. }