Как вернуть пользовательские типы с помощью PHP-сервера? - PullRequest
3 голосов
/ 21 января 2012

Я работаю с PHP SoapServer, работающим в режиме не-wsdl. У меня есть сервер, настроенный для обработки данных и возврата ответа с помощью setClass (). Я попытался вернуть ассоциативный массив, но это преобразуется в карты SOAP с элементами, ключами и значениями. Я хотел бы ответить следующим:

<soap:Body>
    <AsyncResponseOperationResponse xmlns="http://www.sample.com/">
        <AsyncResponseOperationResult>
            <Succeeded>true</Succeeded>
            <Comments>
                The operation was a success
            </Comments>
         </AsyncResponseOperationResult>
    </AsyncResponseOperationResponse>
</soap:Body>

Переменные будут указывать, является ли успех истинным или ложным, и комментарии.

Я пытался прочитать об опции 'typemap', но она не очень хорошо документирована, и то, что я нашел до сих пор, только смутило меня. Ресурсы, которые я нашел до сих пор, это модульные тесты php, такие как этот и этот , а также этот вопрос о переполнении стека

Может ли кто-нибудь дать мне пример, который делает то, что я пытаюсь сделать? Я думаю, что было бы хорошо переключиться в режим wsdl с автообнаружением (с использованием Zeap's Soap Server), если это подходит в качестве решения.

Редактировать: Пока я не выясню, как это сделать правильно, я просто выписываю весь XML вручную.

header("Content-type: text/xml");
echo "<?xml version="1.0" encoding="utf-8"?><soap:Envelope ...
...