Bonjour,
Après avoir beaucoup cherché et testé plusieurs solutions qui ne me conviennent pas, je me permet de poster mon problème au cas où quelqu'un pourrait m'aider.
Mon problème est donc le suivant : Je dispose d'un service symphony dans lequel je crée une connexion cliente Soap.
où $wes est l'URL du service distant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $soap = new \SoapClient($wes, array('features' => SOAP_SINGLE_ELEMENT_ARRAYS, 'cache_wsdl' => WSDL_CACHE_NONE));
Cet appel fonctionne très bien tant que le serveur est disponible.
En revanche, quand il n'y a pas de connexion vers ce service soap, je me retrouve avec une exception causée par le timeout.
Cette erreur se traduit par une erreur 500 en prod, et un ContextErrorException en dev.
Le premier réflexe est de faire un try...catch, mais apparemment c'est peine perdue car le kernel intercepte avant.
Ensuite, il y a bien la solution de personnalisation de la page d'erreur 500, mais ce n'est pas vraiment le comportement attendu : en fait, je souhaite simplement revenir sur la page appelante et y afficher un message indiquant que la connexion a échouée, de la même manière que lorsqu'on valide in formulaire, on est capable d'informer l'utilisateur si l'enregistrement a été effectué correctement.
La dernière piste testée concerne la création d'un listener personnalisé qui implémente une fonction onKernelException(), mais je ne suis pas bien sur que ça corresponde à mon besoin étant donné que je ne sais pas vraiment comment récupérer l'origine de l'erreur afin de n'intercepter que l'erreur qui m'intéresse.
J'espère avoir été assez clair dans l'énoncé de mon problème.
Merci par avance à ceux qui pourront m'éclairer sur ce chemin.
Partager