La manipulation de Savon délais d'attente en PHP

Je travaille sur un projet où je suis la vérification des informations d'un utilisateur avec un web service SOAP. Je suis actuellement en prenant soin d'erreurs en supposant que je suis la réception des réponses du service web, mais aussi besoin de gérer les cas de bord d'un service de délai d'attente ou de l'indisponibilité.

Dans le cas d'un dépassement de délai ou d'indisponibilité du service, j'ai besoin de faire semblant que la demande a été couronnée de succès (que le service web a approuvé l'info), mais je ne suis pas clair sur ce que les exceptions sont levées.

De pseudo-code:

//$client is PHP's SoapClient class
try {
  $response = $client->SomeSoapRequest();
}
catch(SoapFault $e){
  //handle issues returned by the web service
}
catch(Exception $e){
  //handle PHP issues with the request
}

Ce que je n'arrive pas à trouver est:

  1. Sont les délais d'attente d'un SoapFault? Si oui, quelle est la meilleure façon de distinguer entre, d'une erreur de dépassement de délai et de service web de questions (comme une erreur de type, etc.)? J'ai trouvé une page qui parle d'une erreur où le message a été quelque chose à l'effet de "Erreur de chargement des en-têtes", mais ne mentionne pas si c'était une erreur Soap.
  2. Comment est un service de l'indisponibilité potentiellement va arriver? Une exception en PHP me semble qu'il serait logique (un type soapfault serait retourné par le service web où l'indisponibilité serait un problème de socket ou similaire)?
  3. Est-il un service existant (par exemple exemple) que je peux tester un délai d'attente contre? La plupart des dépassement de délai lié discussions semblent être liées à la prévention des délais d'attente en étendant la valeur par défaut paramètre de délai d'attente, ce qui n'est pas l'idéal dans cette situation.
  • Jamais vous résoudre ce problème?
  • Pas vraiment. Je n'ai pas encore essayer Robert Ludwick de la solution, mais il me semble que la chose la plus proche de ce dont j'ai besoin. Si vous trouvez la solution qui fonctionne (ou un autre qui n'), s'il vous plaît laissez-moi savoir!
  • Toujours pas de solution? 🙁
  • Découvrez ma réponse. Ne pouvais pas trouver une solution affiché nulle part. Codé de ce que devrait être une solution complète pour étendre SoapClient et de remplacer son __doRequest() méthode.
InformationsquelleAutor Rob | 2009-05-07