mardi 13 janvier 2009

Une barre de débuggage pour Zend Framework

Petite news pour parler d'un petit utilitaire très pratique pour débugger, et partiellement profiler (de façon sommaire), les applications ZF.

Il s'agit de Scienta ZF Debug Bar. Alors autant être clair, ce projet n'est révolutionnaire ni dans son concept (très largement inspiré d'outils similaires pour Ruby On Rails et symfony notamment), ni dans sa conception (elle aussi très inspirée des projets cités précédemment).

Pour résumer, l'outil se présente sous la forme d'un unique fichier PHP, contenant une unique classe héritant de Zend_Controller_Plugin_Abstract. Son utilisation est fort simple : après avoir extrait l'archive à la racine du projet ZF, il suffit d'inclure le fichier dans le bootstrap, de créer une instance du plugin que l'on configure à l'aide d'un simple tableau de paramètre fourni au constructeur, et enfin d'enregistrer cette instance dans le contrôleur frontal de l'application avec sa méthode registerPlugin().

Cela suffit en effet à générer sur chaque page de l'application une petite barre d'outils en Javascript, utilisant jQuery, qui pourra afficher différents types d'informations sur la requête, comme son temps d'exécution, les différentes requêtes SQL et leur durée, la mémoire consommée, les fichiers inclus, et enfin les différentes variables. Mais le mieux consiste à consulter le site officiel pour se rendre compte de ce que propose l'outil, puis surtout de l'utiliser :)

Une petite note au sujet du choix de jQuery. Je ne débatterai pas de la qualité de la librairie, de la pertinence de son utilisation etc., mais je rappellerai simplement que cela vous posera des problèmes si 1) vous utilisez déjà jQuery ans votre application 2) vous utilisez Prototype (qui est incompatible) 3) sans doute d'autres librairies similaires vous poseront le même problème. Enfin, si la qualité globale du code est discutable, il a le mérite d'être fonctionnel, et je souligne également les deux astuces qui consistent pour la première à utiliser une distribution en ligne de jQuery et la seconde à avoir embarqué le binaire des icones directement dans le source, permettant ainsi la distribution de ce fichier sous la forme d'un unique fichier comme signalé plus haut.

Si l'on peut espérer que l'outil s'étoffe (j'imagine que toute contribution sera par ailleurs bienvenue), il est incontestable que tout développeur ZF peut d'ores et déjà considérer l'utiliser au quotidien. Ce qui lui permettra, entre autre, de ne plus se faire railler par ses collègues utilisant symfony et qui en dispose donc déjà depuis un bon moment ;)

Mini-tuto et téléchargement