Utiliser XDebug pour déboguer les projets PHP
XDebug est un outil de débogage incontournable dans le développement PHP. Il offre des fonctionnalités puissantes de débogage par points d'arrêt, d'analyse de performance et de détection de la couverture du code. Grâce à XDebug, les développeurs peuvent définir des points d'arrêt dans le code, vérifier les valeurs des variables, suivre la pile d'appels des fonctions, analyser les goulets d'étranglement en performance, etc., augmentant ainsi considérablement l'efficacité du développement PHP et la qualité du code.
Introduction à XDebug
XDebug est une extension PHP qui fournit des fonctionnalités de débogage et d'analyse. Il permet aux développeurs de définir des points d'arrêt dans le code, d'exécuter le code pas à pas, de vérifier les valeurs des variables et l'état du programme, aidant ainsi les développeurs à mieux comprendre et déboguer le code.
Activer XDebug et configurer l'environnement de débogage
ServBay intègre XDebug avec chaque version de PHP en sortie d'usine.
Attention
Veuillez consulter l'article Comment activer le module XDebug de ServBay pour obtenir des informations sur la façon d'activer le module XDebug
et de configurer PHPStorm
.
Exemple concret de débogage
Structure de projet exemple
Supposons que nous ayons un projet PHP simple avec la structure de répertoires suivante :
servbay_xdebug_app/
├── src/
│ └── Calculator.php
└── index.php
2
3
4
Le contenu du fichier Calculator.php
est le suivant :
<?php
namespace App;
class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
public function subtract($a, $b)
{
return $a - $b;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Le contenu du fichier index.php
est le suivant :
<?php
require 'vendor/autoload.php';
use App\Calculator;
$calculator = new Calculator();
$sum = $calculator->add(5, 3);
$difference = $calculator->subtract(5, 3);
echo "Sum: " . $sum . "\n";
echo "Difference: " . $difference . "\n";
2
3
4
5
6
7
8
9
10
11
Définir un point d'arrêt
Nous voulons déboguer la méthode add
de la classe Calculator
pour voir comment elle s'exécute. Ouvrez le fichier Calculator.php
dans PHPStorm et définissez un point d'arrêt sur la ligne return $a + $b;
.
Démarrer une session de débogage
- Dans PHPStorm, cliquez sur le bouton
Start Listening for PHP Debug Connections
(icône de coccinelle) dans la barre d'outils en haut. - Accédez à votre application PHP dans un navigateur, par exemple
https://servbay-xdebug-app.test/index.php
.
Processus de débogage
- Lorsque le navigateur accède à
index.php
, XDebug se connecte automatiquement à PHPStorm et suspend l'exécution au point d'arrêt défini. - Dans PHPStorm, vous verrez le code s'arrêter dans la méthode
add
du fichierCalculator.php
à la lignereturn $a + $b;
.
Vérifier les valeurs des variables
- Dans la fenêtre de débogage de PHPStorm, vous pouvez voir la ligne de code actuellement exécutée, la pile d'appels, les valeurs des variables, etc.
- Dans le panneau
Variables
, vous pouvez voir que les valeurs des variables$a
et$b
sont respectivement5
et3
.
Exécution pas à pas
- Cliquez sur le bouton
Step Over
(ou appuyez surF8
) pour exécuter le code pas à pas. - Observez les changements de valeurs des variables et assurez-vous que la méthode
add
renvoie le bon résultat.
Continuer l'exécution
- Cliquez sur le bouton
Resume Program
(ou appuyez surF9
) pour continuer l'exécution du code. - Le programme continuera de s'exécuter jusqu'à rencontrer le prochain point d'arrêt ou terminer l'exécution.
Voir la sortie
- Consultez le résultat dans le navigateur, il devrait afficher :
Sum: 8 Difference: 2
1
2
Conclusion
Avec XDebug, les développeurs peuvent facilement définir des points d'arrêt dans le code PHP, vérifier les valeurs des variables, exécuter le code pas à pas, ce qui leur permet de mieux comprendre et déboguer le code. Dans le développement pratique, la fonction de débogage par points d'arrêt de XDebug peut aider les développeurs à localiser et résoudre rapidement les problèmes, améliorant ainsi l'efficacité du développement et la qualité du code. Par l'exemple de débogage concret ci-dessus, nous pouvons voir la puissance et la commodité de XDebug dans le débogage des projets PHP.