10.Déboguer une application PHP

10.4.Xdebug

10.4.1.Introduction

Afin de faciliter le débogage d'un script PHP, il convient de l'instrumenter. En effet, le script PHP ne doit pas se contenter de s'exécuter, il doit également transmettre des informations permettant de suivre ce qu'il est en train de faire (ligne exécutée, contenu des variables, etc.). Pour parvenir à ce résultat, il convient d'installer une extension tel que Xdebug.
Xdebug permet de réaliser de multiples opérations autour du domaine du débogage. La principale, si l'on peut dire, c'est le débogage pas à pas d'un script mais il faut noter que Xdebug permet également de faire du "profiling", du suivi de couverture de code, etc.
Nous allons donc voir comment l'installer, comment l'activer et d'autres chapitres viendront compléter celui-ci afin de préciser comment l'utiliser dans les différents contextes évoqués.

10.4.2.Installation

10.4.2.1.Introduction

Xdebug peut être installé via les gestionnaires de paquet de la plupart des distributions linux mais il peut également être installé via l'utilitaire PHP PECL.

10.4.2.2.Via le gestionnaire de paquet sous Linux

10.4.2.2.1.Sous Debian 9 (Stretch)

Installer[comment?] le paquet php-xdebug.

10.4.2.2.2.Sous Debian 7 à 8 (Wheezy, Jessie)

Installer[comment?] le paquet php5-xdebug.

10.4.2.3.Via PECL

Avec PECL il suffit de lancer la commande > pecl install xdebug
Comme indiqué à la fin de l'exécution du script d'installation de Xdebug (voir ci dessous) vous pourrier avoir à ajouter au fichier php.ini (bien repérer celui qui est utilisé par votre environnement PHP ciblé) une ligne du type zend_extension=/chemin/vers/xdebug.so. Le chemin est à reprendre dans les instructions affichées par le script.
Build process completed successfully
Installing '/usr/local/php-7.0.19/lib/php/extensions/no-debug-zts-20151012/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.6.0
configuration option "php_ini" is not set to php.ini location
You should add "zend_extension=/usr/local/php-7.0.19/lib/php/extensions/no-debug-zts-20151012/xdebug.so" to php.ini