Я строю простой WebService. У меня есть пользовательский класс PHP и веб-метод getUser для извлечения информации пользователя.Как закодировать PHP-объект на ответ nuSOAP?
Я объявил complexType, и все, кажется, работает отлично.
$server->wsdl->addComplexType('User',
'complexType','struct', 'all', '',
array( 'id' => array('name' => 'id', 'type' => 'xsd:int'),
'username' => array('name' => 'username','type' => 'xsd:string'),
'password' => array('name' => 'password','type' => 'xsd:string'),
'email' => array('name' => 'email','type' => 'xsd:string'),
'authority' => array('name' => 'authority','type' => 'xsd:int'),
'isActive' => array('name' => 'isActive','type' => 'xsd:int'),
'area' => array('name' => 'area','type' => 'xsd:string')
)
);
$server->register('ws_getUser',
array('user_id' => 'xsd:integer'),
array('user' => 'tns:User'),
$namespace,
"$namespace#ws_getUser",
'rpc',
'encoded',
'Retorna un usuario'
);
function ws_getUser($user_id){
return new soapval('return', 'tns:User', getUser($user_id));
}
Однако, в функции getUser я получаю информацию о пользователе в качестве связующего. массив, а не сам пользовательский объект.
То, что я хотел бы сделать на getUser, это вернуть экземпляр пользователя вместо этого, и его nuSOAP сериализует для меня. Это возможно?
Edit: Я пытался возвращение нового пользователя() для целей тестирования, но ответ
<user xsi:type="tns:User"/>