WSDL
Constructeur Zend_Soap_WsdlLe constructeur de Zend_Soap_Wsdl prend 3 paramètres :
addMessage()addMessage($name, $parts) ajoute un message de description au document WSDL (/definitions/message de l'élément). Chaque message correspond à une méthode en terme de fonctionnalité de Zend_Soap_Server et Zend_Soap_Client. Le paramètre $name représente le nom du message. Le paramètre $parts est un tableau de paramètre des messages décrivant les paramètres d'appel SOAP. Le tableau est associatif: 'nom du paramètre' (nom du paramètre d'appel SOAP) => 'type du paramètre'. La correspondance de types est effectuée grâce à addTypes() et addComplexType()(voyez après).
addPortType()addPortType($name) ajoute un nouveau type de portage au document WSDL (/definitions/portType). Ceci fait la jointure entre des méthodes du service décrites en tant qu'implémentations de Zend_Soap_Server. Voyez http://www.w3.org/TR/wsdl#_porttypes pour plus de détails. addPortOperation()
Chaque opération de portage correspond à une méthode de classe (si le Web Service est basé sur une classe) ou à une fonction (si le Web Service est basé sur des fonctions), ceci en terme d'implémentation de Zend_Soap_Server. Cette méthode ajoute aussi les messages d'opération correspondants aux portages, ceci dépend des paramètres $input, $output and $fault.
Voyez http://www.w3.org/TR/wsdl#_request-response pour les détails. addBinding()addBinding($name, $portType) ajoute de nouvelles correspondances (bindings) au document WSDL (/definitions/binding). Le noeud du document WSDL "binding" définit le format du message et les détails du protocole pour les opérations et messages définis par un portage "portType" particulier (voyez http://www.w3.org/TR/wsdl#_bindings). La méthode crée le noeud de correspondance et le retourne. Il peut alors être utilisé.
L'implémentation de Zend_Soap_Server utilise le nom addBindingOperation()
Cette méthode prend un objet
Zend_Soap_Server ajoute les correspondances pour chaque
méthode du Web Service avec des entrées et sorties, définissant l'élément "soap:body"
comme Voyez les détails à http://www.w3.org/TR/wsdl#_bindings. addSoapBinding()
L'élément "/definitions/binding/soap:binding" est alors utilisé pour spécifier que la correspondance est relative au format du protocole SOAP. Voyez http://www.w3.org/TR/wsdl#_bindings pour les détails. addSoapOperation()addSoapOperation($binding, $soap_action) ajoute une opération SOAP ("soap:operation") à l'élément de correspondance avec l'action spécifiée. L'attribut "style" de l'élément "soap:operation" n'est pas utilisé alors que le modèle de programmation (RPC-oriented ou document-oriented) devrait utiliser la méthode addSoapBinding() L'attribut "soapAction" de l'élément "/definitions/binding/soap:operation" spécifie la valeur de l'en-tête SOAPAction pour l'opération. Cet attribut est requis pour SOAP sur HTTP et ne doit pas être renseigné pour les autres modes de transports.
Zend_Soap_Server utilise Voyez http://www.w3.org/TR/wsdl#_soap:operation pour plus de détails. addService()addService($name, $port_name, $binding, $location) ajoute un élément "/definitions/service" au document WSDL avec le nom du Web Service spécifié, le nom du portage, la correspondance, et l'adresse. WSDL 1.1 autorise d'avoir plusieurs types de portage par service. Cette particularité n'est pas utilisée dans Zend_Soap_Server et est non supportée par la classe Zend_Soap_Wsdl. Utilisations de Zend_Soap_Server :
Voyez http://www.w3.org/TR/wsdl#_services pour les détails. Correspondance de typeLe WSDL de Zend_Soap utilise les correspondances suivantes pour faire correspondre les type SOAP à des types PHP :
xsd: est l'espace de noms
"http://www.w3.org/2001/XMLSchema", soap-enc: est l'espace de noms
"http://schemas.xmlsoap.org/soap/encoding/", tns: est un "espace de noms
cible" pour le service.
Récupérer des infos sur les typesgetType($type) peut être utilisée pour récupérer la correspondance d'un type PHP spécifié :
Ajouter des infos sur les types complexesaddComplexType($type) est utilisée pour ajouter des types complexes (classes PHP) à un document WSDL. C'est automatiquement utilisé par la méthode getType() pour ajouter les types complexes des paramètres de méthodes ou des types retournés. Sa détection et son algorithme de construction est basé sur la détection de stratégie des types complexes couramment active. Vous pouvez paramétrer la stratégie de détection soit en spécifiant le nom de classe sous la forme d'une chaîne de caractères ou une instance implémentant Zend_Soap_Wsdl_Strategy_Interface en tant que troisième paramètre du constructeur ou en utilisant la fonction setComplexTypeStrategy($strategy) de Zend_Soap_Wsdl. Les stratégies de détection suivantes existent couramment :
la méthode addComplexType() crée un élément
" Les propriétés des classes doivent posséder un bloc de documentation avec le type PHP en question, afin que la propriété soit incluse dans la description WSDL. addComplexType() vérifie sur le type est déjà décrit dans la section des types du document WSDL. Ceci évite les duplications et récursions si cette méthode est appelée plus d'une fois. Voyez http://www.w3.org/TR/wsdl#_types pour plus de détails. addDocumentation()addDocumentation($input_node, $documentation) ajoute de la documentation lisible ("human readable") grâce à l'élément optionnel "wsdl:document". L'élément "/definitions/binding/soap:binding" est utilisé pour dire que la correspondance est liée au format du protocole SOAP. Voyez http://www.w3.org/TR/wsdl#_documentation pour les détails. Récupérer un document WSDL finalisé
toXML(), toDomDocument() et [1] est l'URI du script
().
[3] sera créé avec
la classe
en
tant qu'algorithme de détection pour les types complexes. Le premier
paramètre du constructeur AutoDiscover accepte toute stratégie de
types complexes implémentant
ou une
chaîne correspondant au nom de la classe. Pour une compatibilité
ascendante, avec les variables
booléennes sont analysées comme avec Zend_Soap_Wsdl. Regardez le
manuel pour plus d'informations.
|