Aller au contenu

Programmation PHP/Xdebug

Un livre de Wikilivres.
Version datée du 13 juillet 2020 à 11:07 par JackPotte (discussion | contributions) (Déplacé des exceptions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Xdebug est un système qui permet d'exécuter le code pas à pas, et élimine donc le risque de sauvegarder des "echo", des "print" ou des "var_dump" en production.

Installation

Installation sur Linux[1][2] :

sudo apt-get install php7.2-xdebug

ou

pecl install xdebug

Puis dans php.ini, sur PHP7.0 :

xdebug.remote_enable = On

ou sur PHP7.2 :

sudo vim /etc/php/7.2/apache2/conf.d/20-xdebug.ini

Ajouter :

xdebug.remote_enable=1

Configuration complète

On peut aussi forcer d'autres paramètres[3] :

sudo apt-get install php7.2-xdebug
&& echo "xdebug.remote_enable=1" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_handler=dbgp" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_connect_back=0" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_port=9000" >> /usr/local/etc/php/php.ini \
&& echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/php.ini

Avec Docker, il faut aussi spécifier le "remote_host"[4].

Lancement

Dans un navigateur

Il faut installer un module sur son navigateur (ex : Xdebug-ext sur Firefox[5]) pour pouvoir activer ou désactiver le débogage d'une page. Ce module s'interface avec les principaux IDE, par exemple PhpStorm[6], pour leur faire lancer le débogage lors du chargement d'une page.

En ligne de commande

On peut ajouter un argument à PHP[7]. Ex :

php -d xdebug.profiler_enable=1 bin/console MaCommande.php

Utilisation

Lors du débogage, PhpStorm fera apparaitre un menu "Debug" avec trois sous-menus dont :

  1. la liste des variables du script et leurs valeurs (modifiables à la volée)
  2. les warnings PHP
  3. la sortie HTML.

Quand on clique dans la marge, un point d’arrêt est créé et représenté par une ligne rouge.

Raccourcis clavier (voir le menu "Run" en haut) :

  • F7 (step into) : mode pas à pas détaillé.
  • F8 (step over) : mode pas à pas sans sauter dans les dépendances.
  • F9 (resume) : poursuivre l'exécution du programme sans s'arrêter.
  • Alt + F9 : poursuivre jusqu'au prochain point d'arrêt.
  • Shift + F7 : pas à pas intelligent.

Références