Je tente de capturer la réponse envoyée par la classe SoapServer
de PHP pour le débogage avant qu'elle ne soit réellement envoyée au navigateur.SoapServer-> handle() ignorant la mise en mémoire tampon de sortie
J'utilise Zend_Soap_Server
qui est censé permettre la capture de la sortie de SoapServer->handle()
en utilisant la mise en mémoire tampon de sortie. Cependant, la méthode du handle semble ignorer complètement le buffer, envoyant directement au navigateur et détruisant la requête.
Cet extrait provient directement de la méthode Zend_Soap_Server->handle()
.
ob_start();
if ($setRequestException instanceof Exception) {
// Create SOAP fault message if we've caught a request exception
$fault = $this->fault($setRequestException->getMessage(), 'Sender');
} else {
try {
$soap->handle($this->_request);
} catch (Exception $e) {
$fault = $this->fault($e);
}
}
$this->_response = ob_get_clean();
Comme vous pouvez le voir ci-dessus, la sortie de $soap->handle()
doit être capturé dans la mémoire tampon et affecté à $this->_response
avec ob_get_clean()
. PHP ne semble jamais arriver à ce point si $soap->handle()
met fin à la demande.
Si je répercute une chaîne dans la mémoire tampon, elle n'est pas envoyée au navigateur et est tamponnée correctement, ce qui me fait penser que $soap->handle()
fait quelque chose qui la casse.
Toute aide ici serait grandement appréciée.