Outil de développement : la PHP Debug Bar

O

Le principe d’interprétation oblige le développeur PHP à attendre l’exécution du script pour savoir, a posteriori, s’il y a des couacs. Quant à savoir où, c’est là une autre histoire, et ce n’est pas la gestion intégrée des erreurs dans le module PHP qui est la plus explicite en la matière, d’autant que certains scripts ne donnent pas le résultat attendu sans pour autant planter par ailleurs.

En complément à certains outils de tests, qu’ils soient fonctionnels (Selenium, FirePHP) ou unitaires ( PHPUnit, Simpletest, …), la PHP DebugBar est un excellent outil de développement.

Que propose la PHP DebugBar ?

Pour faire bref, disons que la PHP DebugBar fait ce que font FireBug ou la console Chrome, avec des données spécifiques au PHP. Pratique pour voir en un coup d’oeil, sans avoir recours à un print_r() ou un var_dump() si certaines valeurs se trouvent bien où elles doivent se trouver.

Des tas de fonctionnalités sont implémentées :

  • Barre de débogage générique sans autres dépendances
  • Facile à intégrer dans tout projet
  • Propre, rapide et facile à utiliser
  • Traitement des requêtes AJAX
  • Intègre des collecteurs de données génériques pour les bibliothèques bien connues (PDO, CacheCache, Doctrine, Monolog, Propel, Slim, Swift Mailer ou encore, Twig)
  • Barre côté client codée 100% en Javascript
  • Créez facilement vos propres capteurs et leur vue associées
  • Enregistrement des requêtes et réouverture ultérieure
  • Très bien documenté

Utilisation

L’installation nécessite le package Composer

Pratiquement, son utilisation est très simple :

use DebugBar\\StandardDebugBar;
$debugbar = new StandardDebugBar();
$debugbarRenderer = $debugbar->getJavascriptRenderer();
$debugbar["messages"]->addMessage("hello world!");

Et dans votre code HTML :

<html>
<head>
<?php echo $debugbarRenderer->renderHead() ?>
</head>
<body>
<?php echo $debugbarRenderer->render() ?>
</body>
</html>

Fonctionnalités de base

Concrètement, dans cette barre vous récoltez joyeusement, en cours d’utilisation, les informations mises en forme concernant, dans un premier temps, la durée totale d’exécution du script et la mémoire totale utilisée.

Pour chaque onglet, un compteur intégré indique le nombre d’items déployés.

Le tout dans une barre horizontale placée en bas d’écran, à la manière d’une barre des tâche Windows.

DebugBar PHP

Les messages PHP

Les messages de type info, warning et error sont retournés dans l’onglet “Messages”.

Les requêtes HTTP

L’outil le plus intéressant, avec la gestion des retours database.

L’onglet requête retourne le contenu des variables dites “superglobales” $_POST, $_GET, $_SERVER, $_COOKIE sous forme d’array.

La Timeline

Quelques indications sont fournies à propos de la durée d’exécution des différentes parties du script. Personnellement, ce n’est pas la partie que je trouve la plus intéressante car trop peu détaillée, d’autant que les consoles de débogage standards intégrées dans les navigateurs sont beaucoup plus explicites.

C’est sans doute le point à améliorer dans l’outil.

Exceptions

Rien d’exceptionnel à ce que l’onglet “Exceptions” présente les exceptions levées lors de l’exécution du script.

Base de données

Le script retourne le nombre de requêtes SQL effectuées, un décompte qui indique le nombre de requêtes retournant true / false, la durée totale d’exécution et la mémoire utilisée.

Dans le détail, le script retourne ensuite le code SQL d’exécution de chaque requête effectuée vers la base de données, l’ID de requête préparée, le nombre de lignes affectées par la requête, la consommation en mémoire, la durée de la requête et, cerise sur le gâteau, il nous indique si la requête a réussi ou non.

Plus d’informations sur le site dédié : http://phpdebugbar.com/.

A propos de l'auteur

Steve Lebleu

Cross-triathlète, amoureux de nature, de grands espaces et ... d'applications web. Curieux et touche-à-tout, je m'intéresse à tous les aspects du développement d'un projet web. Je suis développeur full stack freelance depuis 2018, principalement sur des piles Javascript.

Ajouter un commentaire