PHP SoapServer возвращает пустой ответ на функцию без возврата - PullRequest
0 голосов
/ 07 ноября 2018

у меня есть мыло с методом, который ничего не возвращает

class mySoapService {
   foo(){

   }
}

$wsdl = ...;

$soapService = new mySoapService();

$soapServer = new \SoapServer($wsdl);
$soapServer->setObject($soapService);
$soapServer->handle(); // write nothing on call foo

некоторые мыльные клиенты вызывают исключение, потому что ожидают правильного пустого ответа xml-soap, например:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

вопросы:

  1. почему PHP SoapServer возвращает пустой ответ, а не пустой ответ xml-soap?

  2. что скажет стандарт мыла для метода без возврата значения?

...