Une gestion d’erreur de son API .Net automatique via ses exceptions
...
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
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.
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
Rendez vous sur https://xdebug.org/wizard.php et collez l’output de votre commande.
Cliquez ensuite sur « analyse my phpinfo() ».
Une fois fait, une page contenant les commandes à effectuer s’affichera:
Rendez vous sur https://xdebug.org/download.php et téléchargez le DLL ou SO correspondant à votre version de PHP.
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).
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”
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.
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! 😀
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:
https://localhost/maroute?XDEBUG_SESSION_START=monToken
alors vous pourrez débugger dans votre IDE sans passer par un navigateur web! 😀
On va voir comment avoir en quelques minutes des assertions qui vont vérifier les endpoints de notre API avec des scénarios de ce genre: Feature: Create a new account As a visitor, I can create an account to access the game Scenario: A visitor c...
Depuis .NET 9, le le support d’OpenAPI est directement inclus dans .NET et ne passe plus par les librairies Swagger par défaut (plus d’info sur ce choix ici si jamais ça vous intéresse). De façons simplifiée, la librairie Swashbuckle.AspNetCore.Sw...
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). S...