1 votes

Comment déboguer un service web écrit en PHP ?

J'ai une bonne question ici :)

J'ai besoin de déboguer mon service web écrit en PHP. Son client est écrit en C#.
Après quelques jours de recherche, je me suis rendu compte que ce n'était pas une tâche facile. En tout cas, il semble que personne ne connaisse la bonne solution.

Quel est le problème, en fait ?
Nous disposons de deux bibliothèques populaires de débogage PHP : PHP Debugger de NuSphere et l'extension XDebug.
Le problème est qu'ils sont tous deux contrôlés à partir de la chaîne de requête de l'URL ou à l'aide de cookies. Par exemple, pour activer le débogage avec PHP Debugger, vous devez ajouter le paramètre ?DBGSESSID=xxx à votre URL ou avoir un cookie DBGSESSID.
Mais lorsque votre service web est appelé par un client externe, ce dernier n'a pas de cookie et n'ajoute pas le paramètre url DBGSESSID. Alors comment déboguer dans cette situation ?

PS. Je ne veux pas écrire dans des fichiers journaux, voir les en-têtes/données de demande et de réponse ou quelque chose comme ça. Je veux un débogage normal, étape par étape, et des points d'arrêt.

Quelqu'un ?

0voto

Dathan Points 4144

Je crois me souvenir que vous pouvez configurer le produit NuSphere pour qu'il tente automatiquement de se connecter à l'écouteur de débogage avec ou sans le paramètre DBGSESSID (dans la chaîne de requête ou le cookie). Je ne suis pas sûr que ce soit le cas, cependant. Cependant, vous pouvez obtenir l'effet que vous recherchez en procédant comme suit. Cela peut être un peu plus manuel que ce que vous espérez.

  1. Configurer une sorte d'écouteur de requête/réponse HTTP.
  2. Effectuer l'accès souhaité au service web depuis le client.
  3. Rééditez manuellement ces demandes, en ajoutant le DBGSESSID approprié.

Pour une configuration initiale un peu plus lourde, mais un débogage à moindre friction par la suite :

  1. Configurez votre client pour accéder à une autre URL.
  2. Configurer un proxy pour écouter sur cette URL (pour le débogage, j'ai vu Privoxy recommandé, bien que je n'aie aucune expérience avec lui personnellement).
  3. Configurez le proxy pour qu'il transmette toutes les demandes au service Web réel, en ajoutant un paramètre DBGSESSID approprié ou en incluant le cookie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X