Débogage PHP avec Xdebug

Xdebug est un puissant outil de débogage et de profilage PHP qui nous aide à analyser et à optimiser les applications PHP. Il prend en charge des fonctionnalités telles que le débogage étape par étape, la mesure des performances et le traçage de la pile, ce qui facilite grandement le dépannage et fournit de meilleures informations sur le code. Vous trouverez ci-dessous un petit guide de configuration à utiliser dans VSCode.


Installer Xdebug

A titre d'exemple, nous installons Xdebug sur un système Ubuntu actuel:

sudo apt-get install -y php8.4-xdebug

Enfin, nous créons un répertoire temporaire pour le stockage ultérieur des données de profilage et de traçage.:

mkdir -p /tmp/xdebug

Configurer Xdebug

Après l'installation, nous configurons Xdebug. Pour ce faire, nous le modifions fr/php.ini:

vi /etc/php/8.4/fpm/conf.d/custom.ini

Ce qui suit est une configuration de base judicieuse:

[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
;   reasonable default
xdebug.mode=debug,profile
;   disabled
;xdebug.mode=off
;   step debugging
;xdebug.mode=debug
;   performance profiling (be aware of load/space)
;xdebug.mode=profile
;   trace profiling (record args)
;xdebug.mode=trace

; starting mode
;   always (not recommended)
;xdebug.start_with_request=yes
;   only when specific get parameters / cookies are set
;   (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
;   this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
;   folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
;   not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so

Après avoir effectué ces ajustements, nous redémarrons PHP-FPM pour appliquer les modifications:

sudo service php8.4-fpm restart

Configurer VSCode

Pour utiliser Xdebug dans Visual Studio Code, deux extensions et un ajustement de configuration sont requis. Nous installons ceci:

Enfin, nous créons le fichier de configuration launch.json dans le dossier .vscode du projet à analyser:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}

Installer l'extension Chrome

L'extension d'assistance Xdebug a fait ses preuves en matière de débogage flexible dans le navigateur. Cela permet d'activer ou de désactiver Xdebug uniquement lorsque cela est nécessaire. Vous pouvez également facilement modifier le mode de débogage (par exemple, pour passer du débogage au profilage):

Configurer WordPress

Lors de l'utilisation de Xdebug dans un environnement WordPress, il peut être utile de désactiver le débogage dans les tâches cron lorsqu'une session de débogage est active. Cela facilite les requêtes de débogage. Pour ce faire, ajoutez la ligne suivante à : wp-config.php un:

// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
    define('DISABLE_WP_CRON', true);
}

Avec cette configuration, nous disposons d’une configuration puissante qui nous permet d’aborder avec précision des problèmes de débogage complexes. Qu'il s'agisse de détecter des bogues persistants ou de régler des problèmes de performances, Xdebug rend non seulement le travail plus efficace, mais apporte également une nouvelle qualité au développement grâce au contrôle et à la clarté du code.

Retour