src/Controller/ErreurController.php line 54

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\ClassTheatre\TheatreController;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  11. use Symfony\Contracts\Translation\TranslatorInterface;
  12. class ErreurController extends TheatreController
  13. {
  14.     // {{{ _construct()
  15.     public function __construct(EntityManagerInterface $emTranslatorInterface $translatorTokenStorageInterface $tokenStorage)
  16.     {
  17.         parent::__construct($translator$tokenStorage);
  18.         $this->view->controller 'evenements';
  19.         $this->em $em;
  20.     }
  21.     public function errorRedirect(Request $request): RedirectResponse
  22.     {
  23.         $exception $request->get('exception');
  24.         $t = [
  25.             404 => 'introuvable',
  26.             500 => 'interne'
  27.         ];
  28.         $statusCode method_exists($exception'getStatusCode')
  29.             ? $exception->getStatusCode()
  30.             : Response::HTTP_INTERNAL_SERVER_ERROR;
  31.         if ($this->getParameter('app.env') === 'dev' && $statusCode === Response::HTTP_INTERNAL_SERVER_ERROR) {
  32.             throw $exception;
  33.         }
  34.         return $this->redirectToRoute('erreur', ['type' => $t[$statusCode]]);
  35.     }
  36.     /**
  37.      * @Route("/erreur", name="erreur")
  38.      * @Route("/erreur/{type}", name="erreur_type")
  39.      */
  40.     public function index($type 'introuvable')
  41.     {
  42.         // erreur diff
  43.         $typeError = [
  44.             'non-accessible' => [
  45.                 'code' => Response::HTTP_FORBIDDEN,
  46.                 'title' => "Vous n'avez pas les droits nécessaires pour accéder à cette page"
  47.             ],
  48.             'introuvable' => [
  49.                 'code' => Response::HTTP_NOT_FOUND,
  50.                 'title' => "Désolé ! Nous n'avons pas trouvé la page demandée..."
  51.             ]
  52.         ];
  53.         if(isset($typeError[$type])) {
  54.             $kv 'err' $typeError[$type]['code'];
  55.             $this->context['view']->$kv true;
  56.             $this->context['view']->titre_page $typeError[$type]['title'];
  57.             $this->view->title_page $typeError[$type]['title'];
  58.         }
  59.         // situation
  60.         $this->view->locate = array(=> $this->view->title_page);
  61.         return $this->view('erreur/view.html.twig');
  62.     }
  63. }