¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Personalización de las páginas de error

Presentación

Cada error detectado por Symfony genera lo que se llama una Exception. La excepción es detectada y una página de error muestra el mensaje de error generado.

Así, si intenta ejecutar una ruta que no existe, como, por ejemplo, la ruta /unknwon, Symfony mostrará esta página de error:

images/RI18_01.png

Esta página indica que se ha generado una excepción, pero el diseño no es muy bonito. Sería bastante molesto que apareciese un error así en modo de producción. Esto se parece más a un error de software no controlado. Además, las páginas de error deberían mantener el diseño de todo su sitio web, para evitar que el usuario se sienta desorientado.

Para resolver este problema, vamos a redefinir el aspecto de las páginas de error. Crearemos un nuevo controlador, que llamaremos ErrorController. En el terminal, escriba el siguiente comando:

php bin/console make:controller ErrorController 

Edite el controlador yendo a la página src/Controller/ErrorController.

Vamos a crear un método llamado show() que se llamará cada vez que se dispare una excepción. En el controlador:

<?php  
  
namespace App\Controller; 
 
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\Routing\Annotation\Route; 
use Symfony\Component\ErrorHandler\Exception\FlattenException; ...