Introduction
La personnalisation des pages d'erreur (404 — page introuvable et 500 — erreur interne du serveur) dans votre application peut améliorer l'expérience utilisateur lors de situations inattendues. Ce guide vous expliquera le processus de configuration de pages d'erreur personnalisées dans le SonataExtraBundle.
Prérequis
Avant de continuer, il y a quelques points importants à noter :
- Environnement de développement : Les pages d'erreur personnalisées ne s'affichent pas dans l'environnement de développement. Pour les voir en action, vous devez configurer votre application en mode production.
- Paramètres de l'environnement : Définissez dans votre fichier
.envAPP_ENV=prodetAPP_DEBUG=0. - Session administrateur : Assurez-vous de ne pas être connecté en tant qu'administrateur. Il est recommandé d'utiliser une session pour l'administrateur et une autre (en navigation privée) pour tester les pages d'erreur.
Étapes de configuration
Étape 1 : mettre à jour la configuration de Sonata Admin
Tout d'abord, ajoutez ce qui suit à votre fichier de configuration SonataPage :
sonata_admin:
catch_exceptions:
not_found: [404]
fatal: [500]
Cette configuration intercepte les exceptions concernées et transmet la réponse à la route _page_internal_error_{key}. SonataPage relie intelligemment cela à une page désignée.
Étape 2 : Décorer les pages d'erreur
Dans le panneau d'administration "Pages" de Sonata, localisez et cochez la case "décorer".

Vous verrez les options Page Internal Error Fatal et Page Internal Error Not Found, qui sont cruciales pour les étapes suivantes.
Étape 3 : Traduction et personnalisation
Tous les éléments des pages d’erreur sont traduisibles pour chaque locale du site.

Après avoir activé l’option « Décorer », enregistrez vos modifications et passez au volet « organiser ». Ici, vous pouvez personnaliser le conteneur principal de votre page d'erreur.

Étape 4 : Publication des pages personnalisées
La dernière étape consiste à publier vos pages personnalisées. Créez un instantané de votre page en cliquant sur le panneau de publication.

Conclusion
Après avoir terminé ces étapes, vos pages d’erreur personnalisées 404 et 500 devraient être actives et visibles en mode production.

Avec cette configuration, vous assurez une meilleure expérience utilisateur même en cas d'erreurs dans votre application.
Recette minimale
Testez une URL inexistante et une erreur applicative contrôlée dans l’environnement de recette. La réponse doit conserver le bon code HTTP (404 ou 500) : afficher une belle page avec un statut 200 dégrade le suivi des incidents et l’indexation.