xDebug
Déboguer votre code PHP pas à pas avec xDebug
Notions théoriques
xDebug est une extension PHP qui fournit des capacités de débogage avancées : exécution pas à pas, inspection de variables, points d'arrêt (breakpoints), et profilage des performances.
Sans xDebug, le débogage se limite à des var_dump() ou dump() dispersés dans le code. Avec xDebug, vous pouvez arrêter l'exécution à n'importe quelle ligne et inspecter l'état complet de l'application.
Modes de xDebug
xDebug propose plusieurs modes configurables :
| Mode | Utilité |
|---|---|
debug | Débogage interactif pas à pas |
profile | Profilage des performances |
coverage | Couverture de code pour les tests |
develop | Améliore les messages d'erreur (var_dump amélioré) |
Prérequis
xDebug doit être installé en tant qu'extension PHP. Sur une installation locale, la méthode la plus simple est via PECL :
pecl install xdebug
Pour vérifier que xDebug est actif :
php -v
La sortie doit contenir with Xdebug v3.x.x.
Configuration dans php.ini
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
Exemple de mise en application
Débogage avec VS Code
- Installez l'extension PHP Debug dans VS Code.
- Créez le fichier
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
- Placez un breakpoint dans votre code (clic dans la marge gauche de l'éditeur).
- Lancez la configuration "Listen for Xdebug" dans VS Code (F5).
- Accédez à votre application dans le navigateur : l'exécution s'arrête au breakpoint.
Inspecter les variables
Une fois arrêté sur un breakpoint, le panneau de débogage de VS Code affiche :
- Variables : l'état de toutes les variables locales et globales
- Call Stack : la pile d'appels
- Watch : des expressions à surveiller en temps réel
Les commandes de navigation :
- F5 : Continuer jusqu'au prochain breakpoint
- F10 : Passer à la ligne suivante (step over)
- F11 : Entrer dans une fonction (step into)
- Shift+F11 : Sortir de la fonction actuelle (step out)
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Configurez xDebug pour déboguer votre application Symfony
Étape 1 : Ajoutez la configuration xDebug dans votre php.ini en activant le mode debug.
Étape 2 : Créez le fichier .vscode/launch.json pour que VS Code écoute xDebug sur le port 9003.
xDebug ralentit significativement l'exécution PHP (parfois 3 à 5 fois). Ne l'activez jamais en production.
Utilisez des variables d'environnement pour gérer les configurations différentes entre développement et production.
En Symfony, la configuration php.ini peut varier selon le serveur : vérifiez avec php -i | grep xdebug.
Une solution
Vous devez être connecté pour voir le contenu.