Frédéric Olivier
Développeur Web

12 février 2008Déboguer PHP

Depuis déjà quelques années, je fais partie des fervents utilisateurs de echo, print_r, var_dump et autre exit pour le déboguage de mes sites faits en PHP. Sans faire un débat sur le sujet, ni même avec pour intention de me vanter de quoi que ce soit, je dirais que toutes ces années à chasser le bug à coup de modifications dans le code m'ont permis de développer certaines compétences et une habilité certaine à me représenter spatialement la structure logique d'exécution des programmes et sites dynamiques sur lesquels j'ai travaillé.

Hors, bien que ce fut très instructif, je dois avouer qu'aujourd'hui, alors que je commence à travailler sur un plus grand nombre de projets simultanément, et que ceux-ci sont plus gros que par le passé, il est devenu impensable pour moi de dépendre de ces méthodes.

J'ai récemment eu le temps de lire sur Zend Debugger et de me lancer dans son installation sur mon serveur de développement et Zend Studio Eclipse - Beta (la version 6 de Zend Studio, qui intègre à sa base l'IDE Eclipse). Tout en essayant pour la première fois le débogueur de Zend, j'ai vu qu'il existait également xDebug, un concurrent Open Source qui ne se « limite » pas uniquement à être un simple débogueur, mais embarque aussi une série d'outils supplémentaires.

En plus d'améliorer drastiquement la présentation et les options de var_dump, il permet de tracer le flux d'exécution d'un script sans altérer le code, de profiler une exécution afin de déterminer quels sont les goulots d'étranglement, et le nombre d'appel fait à chaque fonction, ainsi qu'à trouver le code mort via phing, et il fait aussi le deboguage en temps réel comme Visual Studio (qui a popularisé cet outil très pratique).

C'est donc une invitation à aller voir xDebug de plus près, via cette série d'articles assez faciles à lire et à suivre, pour Windows et Linux :Il va de soie que ces outils sont à réserver uniquement à votre serveur de développement, puisqu'ils tueraient probablement votre serveur de production, et qu'il est toujours préférable de travailler en développement plutôt que de planter votre site en Live...

Si vous passez beaucoup de temps à développer chaque semaine, ou que vous devez effectuer des changements sur de gros sites assez complexes, xDebug semble une suite d'outils plus que recommandables. Pour ceux qui n'ont jamais utilisé de débogueur de leur vie, l'installation de Zend Debugger peut être un peu plus aisé, et être un bon point de départ pour vous accoutumer à cet outil très complet. Quelques heures bien investies.

Pour commencer, deux étapes faciles :

  1. Télécharger xdebug sur le site officiel. Faire attention à pendre la version appropriée pour votre version de PHP.
  2. Ajouter cet extrait de code à la fin de votre fichier php.ini:

    [XDebug]
    zend_extension_ts="E:/wamp2/bin/php/php5.2.9-1/ext/php_xdebug-5.2.8.dll"
    xdebug.remote_enable=1
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.profiler_enable=1
    xdebug.profiler_output_dir="F:/tmp/xdebug-profiling"


Cadouri de Craciun