|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : septembre 2003 Messages : 595 ![]() |
Bonjour,
J'essais de mettre sur pied un service web dont la fonction PHP retourne un tableau. J'ai tout d'abord mis un type Array dans la section message de mon fichier wsdl: Code :
Sachant que chaque langage a sa façon bien précise de gérer les tableaux je suppose qu'il faut que je déclare mon tableau PHP en tant que type complexe dans la bannière <types> du fichier wsdl. Est ce que quelqu'un pourrait me dire qu'est ce que je doit mettre exactement dans <types> et qu'elle est la syntaxe ? Merci d'avance |
||
|
|
00
|
|
|
#2 | ||||||||||
|
Membre habitué
![]() Inscription : septembre 2003 Messages : 595 ![]() |
Pas de réponse
Aprés de nombreuses recherches infructueuses j'ai finalement fait générer le fichier wsdl par Zen Studio. Pour une fonction php qui retourne un array, Zend Studio ne définit même pas de balise <types> mais se contente simplement d'un anyType dans la balise part de la section message Code XML :
Voici mon code: request_service.php Code :
Code XML :
Code :
Citation:
Pour contourner le pb j'ai remplacé les indexes 1,2,3 par a,b,c et là php m'affiche: Citation:
l'erreur vient-elle de la façon de faire passer le array ou de la description de la fonction dans le fichier wsdl ou des deux ????? Si quelqu'un pouvait m'expliquer ça m'aiderait beaucoup. |
||||||||||
|
|
00
|
|
|
#3 | ||||
|
Membre habitué
![]() Inscription : septembre 2003 Messages : 595 ![]() |
Bon, ça y est j'ai enfin trouvé la bonne syntaxe mais ça a pas été facile
parce que niveau exemple c'est plutôt l'omerta C'est au niveau de la récupération du tableau dans le fichier request_client.php que se situe le pb. En fait le tableau est retourné suite à l'appel à la fonction reqFunc (via soapCall) : Code :
Ce qui donne: Code :
Voilà, il existe peut être une solution plus directe (sans utiliser $container) mais je ne la connais pas, si quelqu'un sait comment faire qu'il n'hésite pas. |
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Je ne comprends pas bien pourquoi tu espérais récupérer ton tableau dans l'instance de la classe SoapClient qui sert à communiquer avec ton serveur en webservice.
Il n'y a aucune raison pour que ton tableau (array) s'insère automatiquement dans ta classe SoapClient qui n'a aucune connaissance de ce résultat. Il faut donc bien récupérer dans une variable ce que te retourne ton webservice. |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() |
Ca me parait logique.... Si une fonction renvoie quelque choses mais que tu n'affecte pas une variable par le retour de la fonction ca ne marche pas. Ca a toujours été le cas
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com