Как избавиться от узла Response - PullRequest
0 голосов
/ 24 апреля 2019

Я использую Zend-Soap для создания веб-сервиса для одного из наших клиентов.

Я хочу, чтобы мой сервис вернулся:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="X">
   <SOAP-ENV:Body>
      <ns1:getPersonRolesResponse>
            <rolelist>
               <role>subscriber</role>
            </rolelist>
      </ns1:getPersonRolesResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Но это то, что он на самом деле ответ

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="X">
   <SOAP-ENV:Body>
      <ns1:getPersonRolesResponse>
         <getPersonRolesResult>
            <rolelist>
               <role>subscriber</role>
            </rolelist>
         </getPersonRolesResult>
      </ns1:getPersonRolesResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Как вы можете видеть, каждый раз нас интересует узел Result.

//code simplified
 public function getPersonRoles($netid){
        $role ="subscriber";

        return (object)[
            "rolelist" => (object)[
                "role" => $role
            ]
        ];
    }
...