Xdebug : l'outil de debug et profiling PHP
Comme dans tous les langages PHP possède des outils de debugage et de profilage pour optimiser vos applications.
Il existe bien évidement celui de Zend qui est founit avec PHP, cela dit il existe également Xdebug qui est un excellent outil permettant de se configurer sur Eclipse pour faire du debug, d’améliorer les var_dump en PHP pour visualiser plus facilement les erreurs et de mettre en cache des données pour visualiser les performances de votre application.
Nous allons voir comment installer et configurer Xdebug dans votre environnement PHP.
Tout d’abord, il faut s’avoir que Xdebug est une extension à PHP (sous forme d’une DLL sous Windows, et d’un .so sous linux). Il faut récupérer l’extension sur le site de Xdebug : http://www.xdebug.org/ (vous pouvez essayer les paquets dans les dépôts sous linux c’est beaucoup plus pratique).
Il faut ensuite copier le fichier dans le répertoire des extensions :
Il faut ensuite activer l’extension dans le php.ini en rajoutant la ligne suivante :
extension=php_xdebug-2.0.4-5.2.8.dll
Xdebug est enfin installé sur le serveur php, la première chose que l’on peut remarque c’est que les var_dump sont beaucoup plus complets et lisibles que précédemment :
Les messages d’erreurs sont également plus complets :
On peut également utilisé Xdebug pour faire du profiling, c’est à dire faire un affichage de toutes les fonctions exécutées avec les temps de réponses. Pour cela il faut modifier le fichier php.ini et rajouter le code suivant dans la partie module settings :
[xdebug]
xdebug.profiler_enable=On
; On choisit le répertoire où on stocke le cache
xdebug.profiler_output_dir="c:\traces"
xdebug.profiler_append=On
xdebug.profiler_enable_trigger=On
Il faudra penser à vider le cache lorsqu’on veut profiler l’exécution d’une page en supprimer le fichier dans le répertoire.
On regarde ensuite le profilage avec un logiciel prévu à cet effet, il s’agit de WinCacheGrid sous Windows et XCacheGrid sous Linux, et on pourra avoir les résultats sous la forme suivante :
Pour une utilisation plus avancée, on peut aussi configurer Xdebug avec le PDT d’Eclipse pour avoir une vraie fonction de débogage perfectionnée ou sinon il reste aussi la solution ultime Zend Studio mais qui est relativement coûteuse.



