Vous pouvez utiliser l'une de ces approches :
-
Configurez votre Xdebug (en modifiant php.ini) pour tenter de déboguer chaque script PHP. L'option clé :
- Xdebug v2 :
xdebug.remote_autostart = 1
- Xdebug v3 :
xdebug.start_with_request = yes
-
Ajoutez le paramètre de démarrage de session Xdebug à l'URL réelle (XDEBUG_SESSION_START={{CLÉ}}
-- https://xdebug.org/docs/step_debug#manual-init), par exemple : ?XDEBUG_SESSION_START=PHPSTORM
-
Transmettez le cookie Xdebug en tant que partie de la requête (celui qui est défini par bookmarklet ou extension de navigateur, par exemple).
Pour que cela fonctionne : assurez-vous que l'icône "phone handle" est activée à l'avance dans PhpStorm (Run | Start Listen for PHP Debug Connection
).
P.S. Si vous utilisez Postman, Insominia ou similaire (un autre client REST), alors le meilleur / le plus transparent à mon avis est d'utiliser le cookie Xdebug. Vous utilisez très probablement déjà des Environnements distincts (par exemple "dev", "test", "production") donc vous pouvez avoir un tel cookie uniquement là où il est nécessaire (cela dépend bien sûr de l'outil et de la version utilisée).
Ainsi, il n'est pas nécessaire de modifier l'URL (même si vous l'avez en tant que "paramètre conditionnel" présent pour certains environnements et absent pour d'autres) ou de configurer Xdebug pour "déboguer toutes les requêtes" du tout.
Un exemple de cookie Xdebug tel que celui de mon Postman (modifiez-le si nécessaire ; ici il est défini pour le domaine factice local some-domain.local.test
) :
XDEBUG_SESSION=valeur; Chemin=/; Domaine=.some-domain.local.test; Expires=Mar, 19 Jan 2038 03:14:07 GMT;
Comme l'URL hôte devrait faire partie de votre Environnement (par exemple, l'URL de point de terminaison sera comme {{host}}/api/v1/bienvenue
), alors un tel cookie sera envoyé uniquement au domaine de développement et pas à celui de production.