Zend_Soap_ServerLa classe Zend_Soap_Server a été créée pour simplifier la création d'un service Web SOAP en PHP. Elle peut être utilisée en mode WSDL ou non-WSDL, et elle utilise des fonctions ou des classes pour définir le service Web rendu. Lorsque le composant Zend_Soap_Server fonctionne en mode WSDL, il utilise le document WSDL pour décrire le comportement des objets du serveur ainsi que les options de transport vers les clients. Un document WSDL peut être auto-généré en utilisant le composant Zend_Soap_AutoDiscovery, ou alors construit manuellement avec la classe Zend_Soap_Wsdl ou tout autre outil de génération de XML Si le mode non-WSDL est utilisé, alors toutes les options du protocole doivent être configurées. Constructeur de Zend_Soap_ServerLe constructeur de Zend_Soap_Server s'utilise différemment selon que l'on fonctionne en mode WSDL ou non. Constructeur de Zend_Soap_Server en mode WSDLLe constructeur de Zend_Soap_Server prend 2 paramètres optionnel en mode WSDL:
Constructeur de Zend_Soap_Server en mode non-WSDLLe premier paramètre du constructeur doit être mis à la valeur NULL si vous voulez utiliser Zend_Soap_Server en mode non-WSDL. Vous devez aussi spécifier "uri" dans ce cas (voir juste après). Le second paramètre de constructeur est un tableau ($options) d'options permettant la création de l'objet serveur SOAP.[3] setOptions($options) . Les options suivantes sont reconnues en mode non-WSDL :
Méthodes de définitions de l'API du serviceIl existe 2 manières de déclarer l'API de votre serveur SOAP. La première consiste à attacher des classes à l'objet Zend_Soap_Server, celles-ci devront alors décrire l'API du service en totalité :
La seconde manière de décrire l'API de votre service Web est d'utiliser des fonctions PHP conjointement avec les méthodes addFunction() ou loadFunctions() :
Gestion des objets de requête et de réponse
Le composant Zend_Soap_Server effectue des requêtes et récupère des réponses, ceci automatiquement. Il est possible d'intercepter la requête/réponse pour ajouter du pré ou post processus. RequêteLa méthode Zend_Soap_Server::handle() utilise la requête depuis le flux d'entrée standard ('php://input'). Le comportement peut être changé en passant des paramètres à la méthode handle() ou en spécifiant sa propre requête grâce à la méthode setRequest() : ... $server = new Zend_Soap_Server(...); ... // Affecte une requête personnalisée $server->handle($request); ... // Affecte une requête personnalisée $server->setRequest(); $server->handle(); Un objet de requête peut être représenté de plusieurs manières différentes :
La dernière requête utilisée et traitée peut être récupérée en utilisant la méthode getLastRequest() :
RéponseZend_Soap_Server::handle() émet automatiquement la réponse vers le flux standard de sortie. Ce comportement peut être changé en utilisant setReturnResponse() avec une valeur TRUE ou FALSE en paramètre. [4] setReturnResponse() . La réponse générée par handle() est alors retournée et non plus émise.
Autrement, la dernière réponse peut être récupérer avec la méthode getLastResponse() :
[1]
Peut être spécifié plus tard avec la méthode
[2]
Peut être spécifié plus tard avec la méthode
[3]
Les options se configurent aussi plus tard, grâce à la méthode
[4]
L'état actuel du drapeau de retour de la réponse peut être vérifié via
la méthode sans paramètre.
|