LastRequest пуст, POST пуст. Как получить XML-запрос от Zend Soap Server?

Я реализовал мыльный сервер Zend с кодом ниже. Для моих целей мне нужно иметь доступ к полному сообщению XML или, по крайней мере, к его заголовкам. Однако метод getLastRequest на SoapServer возвращает пустой, и все суперглобальные переменные, такие как $ _GET, $ _POST и еще много чего, также пусты. У кого-нибудь есть идеи?

class SoapTest
{

protected $server;

public function __construct(\Zend\Soap\Server $server)
{
$this->server = $server;
}

/***
* @param string $requestIn
* @return string
*/
public function test($requestIn)
{
// access XML here
}
}
$serverUrl = "http://localhost/SoapTest.php";
$options = [
'uri' => $serverUrl,
];
$server = new Zend\Soap\Server(null, $options);

if (isset($_GET['wsdl'])) {
$soapAutoDiscover = new \Zend\Soap\AutoDiscover(new \Zend\Soap\Wsdl\ComplexTypeStrategy\ArrayOfTypeSequence());
$soapAutoDiscover->setBindingStyle(array('style' => 'document'));
$soapAutoDiscover->setOperationBodyStyle(array('use' => 'literal'));
$soapAutoDiscover->setClass(SoapTest::class);
$soapAutoDiscover->setUri($serverUrl);

header("Content-Type: text/xml");
echo $soapAutoDiscover->generate()->toXml();
} else {
$soap = new \Zend\Soap\Server($serverUrl . '?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE));
$soap->setObject(new \Zend\Soap\Server\DocumentLiteralWrapper(new SoapTest($soap)));
$soap->handle();
}

0

Решение

Очевидно, Zend Soap Server заполняет свойство $ request (которое возвращается в getLastRequest) ПОСЛЕ дескриптора, поэтому я не могу получить к нему доступ в своем методе.

Однако я могу получить доступ к XML, вызвав следующее:

$request = file_get_contents('php://input');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]