SoapServer
実際にブラウザーに送信される前に、デバッグのためにPHP のクラスから送信された応答を取得しようとしています。
出力バッファリングを使用してZend_Soap_Server
出力をキャプチャできるようになっているものを利用しています。SoapServer->handle()
ただし、handle メソッドはバッファを完全に無視しているようで、ブラウザに直接送信してリクエストを強制終了しています。
これは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();
上記からわかるように、 からの出力はバッファにキャプチャされ、 with$soap->handle()
に割り当てられる必要があります。リクエストを終了しているように、PHPはこの時点に到達していないようです。$this->_response
ob_get_clean()
$soap->handle()
バッファ内の文字列をエコーすると、ブラウザに送信されず、正しくバッファリングされるため、$soap->handle()
何かを壊していると思われます。
ここで何か助けていただければ幸いです。