Maintenant qu'on sait le faire, il ne reste plus qu'à le faire.

Créez donc le répertoire
app/Resources/TwigBundle/views/.
En l'occurrence, les
templates des messages d'erreur se trouvent dans le répertoire Exception, créons donc le répertoire
app/Resources/TwigBundle/views/Exception.
Et au sein de ce répertoire, le
bundle utilise la convention suivante pour chaque nom de
template :
- il vérifie d'abord l'existence du template error[code_erreur].html.twig, par exemple, error404.html.twig dans le cas d'une page introuvable (erreur 404) ;
- si ce template n'existe pas, il vérifie l'existence du template error.html.twig, une sorte de page d'erreur générique.
Vous pouvez créer
error404.html.twig pour les pages non trouvées et
error500.html.twig pour les erreurs internes, ce sont deux des plus utilisées. Mais n'oubliez pas de créer
error.html.twig également, sinon, vous aurez des pages d'erreur dépareillées en cas d'erreur (401, par exemple, pour un accès refusé).
Le contenu d'une page d'erreur
Pour savoir quoi mettre dans ces
templates, je vous propose de jeter un œil à celui qui existe déjà,
error.html (il se trouve dans
vendor\symfony\src\Symfony\Bundle\TwigBundle\Resources\views\Exception) :
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>An Error Occurred: {{ status_text }}</title>
</head>
<body>
<h1>Oops! An Error Occurred</h1>
<h2>The server returned a "{{ status_code }} {{ status_text }}".</h2>
<div>
Something is broken. Please e-mail us at [email] and let us know
what you were doing when this error occurred. We will fix it as soon
as possible. Sorry for any inconvenience caused.
</div>
</body>
</html>
|
Vous pouvez y voir les différentes variables que vous pouvez utiliser :
{{ status_text }} et
{{ status_code }}.
Fort de ça, vous pouvez créer la page d'erreur que vous souhaitez : vous avez toutes les clés.
Soyons d'accord : cette page d'erreur que l'on vient de personnaliser, c'est la page d'erreur générée en mode « prod » !
Remplacer la page d'erreur du mode « dev » n'a pas beaucoup d'intérêt : vous seul la voyez, et elle est déjà très complète. Cependant, si vous souhaitez quand même la modifier, alors cela n'est pas le template error.html.twig qu'il faut créer mais le template exception.html.twig. Celui-ci se trouve aussi dans le répertoire Exception/.