Je construis un simple WebService. J'ai une classe utilisateur PHP et un webmethod getUser pour récupérer les informations d'un utilisateur.Comment encoder l'objet PHP en réponse nuSOAP?
J'ai déclaré un complexType et tout semble fonctionner parfaitement.
$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));
}
Cependant, dans la fonction getUser, je récupère les informations utilisateur en tant qu'assoc. tableau, pas l'objet utilisateur lui-même. Ce que je voudrais faire sur getUser est de renvoyer une instance User à la place, et de le sérioter nuSOAP pour moi. Est-ce possible?
Edit: J'ai essayé de retourner un nouvel utilisateur() à des fins de test, mais la réponse est
<user xsi:type="tns:User"/>