Comment déboguer du code PHP pas à pas avec Xdebug et PhpStorm sur une configuration DDEV
Qu'est-ce que le débogage ?
Selon Wikipédia : « En programmation informatique et en développement logiciel, le débogage est le processus de recherche et de résolution des bogues (défauts ou problèmes qui empêchent le bon fonctionnement) dans les programmes informatiques, les logiciels ou les systèmes. »
Selon Internet : « Déboguer, c'est comme être le détective dans un film policier où vous êtes aussi le meurtrier. » – Filipe Fortes
Qu'est-ce que DDEV ?
DDEV est un outil open source qui permet de configurer rapidement des sites locaux en utilisant Docker. Et vous n'avez pas besoin de connaître grand-chose à Docker pour l'utiliser, il vous suffit de l'avoir installé. Une liste de commandes pour obtenir DDEV, ainsi qu'un projet WordPress ou Drupal opérationnel, est disponible sur ttps://davidloor.com/2021/12/22/how-to-setup-a-wordpress-and-drupal-local-site-with-ddev/
Qu'est-ce que Xdebug ?
Xdebug, selon le site officiel, « est une extension pour PHP, et fournit une gamme de fonctionnalités pour améliorer l'expérience de développement PHP ».
L'une des fonctionnalités fournies par Xdebug est le débogage pas à pas, où Xdebug interagit avec un IDE en utilisant le protocole DBGp. PhpStorm, Sublime, Netbeans, Visual Studio Code et d'autres IDE bien connus le prennent en charge. Avec le débogage pas à pas, les programmeurs peuvent définir des points d'arrêt sur n'importe quelle ligne d'un script PHP, là où ils souhaitent arrêter son exécution afin de pouvoir voir l'état et le comportement du programme à ce point spécifique.
Pourquoi devrions-nous nous soucier d'utiliser un outil comme xDebug alors que nous avons les fonctions error_log, print_r, var_dump et d'autres similaires que nous avons tous beaucoup utilisées ? Parce que xDebug fera de vous un codeur et un correcteur de bugs beaucoup plus rapide.
Supposons que vous ayez besoin de déboguer un fichier php, où vous êtes presque sûr qu'il y a un bug, d'après les journaux d'erreurs du serveur, en utilisant simplement des fonctions comme error_log, print_r. Vous devrez commencer à appeler ces fonctions, en passant les variables que vous souhaitez afficher, et rafraîchir la page dans le navigateur pour vérifier la sortie, et si les variables ne vous donnent pas les informations dont vous avez besoin pour résoudre le problème, vous devrez répéter le processus avec un ensemble différent de variables jusqu'à obtenir les informations qui pourraient être utiles pour corriger le bug. Et, comme nous le savons, ce processus prend du temps.
Pour déboguer le même bug hypothétique ci-dessus, dans un script PHP, en utilisant xdebug, vous devrez définir le point d'arrêt sur la ou les lignes où vous souhaitez voir l'état du programme, et rafraîchir le navigateur. Vous pourrez voir toutes les variables en portée pendant la requête, comme vous pouvez le voir dans la capture d'écran suivante, en une seule interaction.

Installer et activer xDebug
- Xdebug est déjà installé lors de l'utilisation de DDEV.
- Pour activer Xdebug sur le projet DDEV, dans le terminal, exécutez simplement ddev xdebug on
- vous devriez obtenir Enabled xdebug comme sortie
Commencer à écouter les connexions de débogage PHP dans PhpStorm
- Ouvrez votre projet PHP dans PhpStorm
- Dans le coin supérieur droit de PhpStorm, vous trouverez un petit bouton téléphonique, cliquez dessus pour commencer à écouter les connexions de débogage PHP.

- Ouvrez votre site local dans un navigateur, et dans PhpStorm, vous serez invité à accepter la connexion entrante de Xdebug, où vous devrez cliquer sur Accepter.

Réflexions finales
Xdebug n'est qu'un autre outil qui peut être utilisé pour trouver et résoudre des bugs dans le code PHP. Il peut aider à stimuler la productivité d'un développeur PHP dans de nombreux cas.
PhpStorm est également un autre outil, qui possède d'excellentes fonctionnalités pour le développement PHP. Je l'ai commencé à utiliser il y a 2 ans après avoir entendu tous les avantages qu'il apportait à mes collègues. Pendant plus de 13 ans, j'ai été un grand fan d'Apache Netbeans, qui fonctionne également très bien avec Xdebug, mais quelques étapes supplémentaires étaient nécessaires pour qu'il fonctionne pleinement, et il utilisait trop de ressources de mon ordinateur, ce qui le rendait super lent.
Nous devrions nous rappeler que « Vous n'êtes aussi bon que les outils que vous utilisez. »