Xdebug est une extension indispensable qui va vous permettre de « débugger » votre code PHP.
J’ai installé ce débugger sur de nombreux projets PHP, si vous suivez ce guide pas-à-pas vous pourrez installer Xdebug sans aucun problème !
Sommaire
I. Récupérer la bibliothèque Xdebug
La première étape consiste à télécharger la bibliothèque adéquate.
Si vous êtes sous Windows, il s’agit d’un fichier .dll et si vous êtes sous linux il s’agit d’un fichier .so.
Celui-ci varie suivant votre version de PHP.
Méthode 1 : Analyse du phpinfo()
Le site de Xdebug permet de copier/coller la sortie de votre phpinfo() afin de déterminer quel fichier télécharger.
La méthode la plus simple est de se placer dans le répertoire de votre projet, d’ouvrir une invité de commande et de taper la commande:
php -i
Astuce: Si vous êtes sous Windows, vous pouvez taper la commande php -i | clip pour que l’output du phpinfo() soit directement dans votre presse papier
Si vous avez suivi la méthode 1 de la partie précédente, vous avez peut-être eu à créer ou modifier un fichier xx-xdebug.ini. Si c’est le cas, faites en sorte que ce fichier contienne les informations suivantes:
zend_extension = chemin_vers_votre_fichier_xebug.[dll ou so]
xdebug.mode=debug
xdebug.remote_enable = 1
xdebug.remote_autostart=on
Si ce n’est pas le cas, ajoutez ces lignes à votre php.ini. (je pense que c’est mieux d’avoir cette configuration dans un fichier .ini dédié comme le fichier xdebug.ini mais nous ne le verrons pas dans cet article).
III. Création de la configuration dans PHPStorm
Dans mon cas, je lance mon projet en local
Créez une run-configuration de type “PHP web page” dans PHPStorm:
Cliquez sur “PHP Web Page” (3) dans l’image ci-dessus.
Une fenêtre s’ouvre, dans “name” mettez le nom de votre configuration.
Note: Vous pouvez cocher “store as project file” si vous voulez versionner la configuration avec git par exemple.
Dans “server” cliquez sur les 3 petits points et mettez la configuration de votre serveur.
Dans mon cas, mon serveur web est en local sur le port 8000, je n’ai pas besoin de spécifier de pathmapping.
/!\ Il est indispensable de le déclarer si vous utilisez un serveur en remote ou si les fichiers de votre projet ne sont pas à la racine de votre serveur web.
Si vous êtes dans ce cas là, voici à quoi ma configuration ressemblerait si j’étais dans le cas d’un serveur apache sur une vm distante avec mes sources dans /var/www/monprojet.
J’aurais coché la case “Use path mappings” et j’aurais mis:
/!\ Si vous avez des fichiers en cache, le mapping ne pourra pas s’effectuer donc pensez bien à désactiver OPCache si jamais il est activé.
Cliquez ensuite sur “ok”
IV. (Optionnel) validation que Xdebug est bien configuré
PhpStorm permet de vérifier que Xdebug est bien configuré. C’est une feature que je trouve super pratique, il ne faut pas hésiter à l’utiliser ! En effet, s’il y a un souci avec votre configuration, votre IDE vous donnera des indications sur ce qui ne va pas.
Cliquez sur le texte “validate”.
La première ligne permet d’indiquer où PhpStorm doit upload le script de validation. Je suis sur un projet symfony 5, mon dossier racine accessible par le navigateur est ‘public’.
La seconde ligne permet d’indiquer à quel endroit le script va être upload. Dans mon cas c’est http://localhost:8000.
Cliquez ensuite sur “valider”, si tout va bien vous n’aurez que des coches vertes 😀 Dans le cas contraire, votre IDE vous indiquera souvent les actions à réaliser pour que tout se passe bien.
V. Plus qu’à lancer !
Cliquez sur “ok” pour finaliser le paramétrage de la run-conf.
Dans votre code source, placez votre point d’arrêt à l’endroit de votre choix en cliquant dans la marge:
On doit activer l’écoute des connexions de débug en cliquant sur le téléphone en haut à droite puis sur l’icône de débug.
Le résultat doit être:
Faites en sorte d’atteindre votre point d’arrêt et ça devrait être tout bon! 😀
Pour aller plus loin
Dans l’onglet débug de votre IDE, vous avez le numéro du token Xdebug (l’ide key dans la capture d’écran).
Si vous le renseignez dans un outil type Postman ou si vous l’ajoutez à la suite de votre appel comme par exemple:
Description du problème
Par défaut, il n’est pas autorisé de faire des requêtes entre une application qui est dans un domaine A vers une autre qui serait dans un domaine B (pour des raisons de sécurité, il y a plus de détails dans les sources).
Si vous avez un front qui tourne sur un serveur node localhost:4200 et votre backend .Net sur localhost:7248), les requêtes du front ve...
On va créer pas-à-pas un raccourci qui nous permettra de générer un IBAN et de l’insérer à l’endroit où se trouve notre curseur. Si vous n’avez pas fait le setup pour développer un plugin Jetbrains, je vous invite à lire notre article sur le sujet.
...
Introduction
Vous utilisez un IDE Jetbrains et des fonctionnalités vous manquent par exemple:
des raccourcis bien pratiques
des fenêtres d’information
le support des formats de fichiers avec lesquels vous travaillez
etc..
Alors vous vous...
Votre changelog reprend les fonctionnalités que vous avez réalisé entre deux versions, ça tombe bien, votre historique git contient ces informations :) On va voir comment les extraire de git pour générer automatiquement un changelog exhaustif et fiable.
...