Le 05/08/2012 dans symfony

Améliorer les exceptions de Symfony2

EDIT 2016 : Il y a maintenant un Bundle pour ça !

Les exceptions dans Symfony2 sont affichées au développeur par une magnifique page, avec toute la stack d’exécution, les fichiers, les lignes, les messages, et… lui :

Un petit fantôme tout ce qu’il y a de plus mignon.

Ce petit fantôme n’étant pas super expressif,
il y a fort à gagner à le remplacer par quelque chose de plus… explicite.

Le gif animé à la rescousse

J’ai un gros penchant pour les gifs animés, l’expression qui nous intéresse et qui correspond parfaitement à la situation est le FAIL. Il nous faut donc des gifs animés de FAIL !

A ma grande surprise, je n’ai trouvé aucune API permettant de simplement obtenir un gif animé sur un mot clé précis. Il y a un marché (wink wink les investisseurs).

J’ai donc du développer le mien (http://damienalexandre.fr/lab/random-fail), qui retourne un gif animé de fail aléatoirement depuis le flux RSS de ReactionGifs.com !

random fail gif

Implémentation dans un projet Symfony2

On rentre dans la technique, attention les yeux. Il suffit de créer un fichier !
En effet grâce à la souplesse de Symfony2, nous pouvons écraser le fichier utilisé par défaut pour utiliser le nôtre, en l’occurence : app/Resources/TwigBundle/views/Exception/exception.html.twig.

Ce fichier est donc une copie du fichier inclus dans le TwigBundle (/Symfony/Bundle/TwigBundle/Resources/views/Exception/exception.html.twig), nous en changeons juste le début pour inclure notre image aléatoire :

Vous venez d’apprendre trois choses :

  • Comment étendre un des templates de base du framework
  • Une super blague à faire à vos collègues (caché dans un commit « CS fix » par exemple)
  • Les gifs animés ont besoin d’une API

Le seul point négatif de ce micro hack est que vous allez être tentés de rafraichir votre page d’exception pour voir apparaitre un autre gif. Je ne saurais être tenu responsable d’une perte quelconque de productivité dans vos équipes.