WSDL Zugriffsmethoden
Zend_Soap_Wsdl KonstruktorDer Zend_Soap_Wsdl Konstruktor nimmt drei Parameter:
Die addMessage() MethodeDie addMessage($name, $parts) Methode fügt eine neue Nachrichten Beschreibung zu einem WSDL Dokumetn hinzu (/definitions/message Element). Jede Nachricht korrespondiert zu einer Methode im Sinne von Zend_Soap_Server und Zend_Soap_Client Funktionalität. Der $name Parameter repräsentiert den Namen der Nachricht. Der $parts Parameter ist ein Array von Nachrichten Teilen welche SOAP Aufruf Parameter beschreiben. Es ist ein assoziatives Array: 'part name' (SOAP Aufruf Parameter Name) => 'part type'. Das Typ Mapping Management wird durchgeführt indem die addTypes(), addTypes() und addComplexType() Methoden ausgeführt werden (siehe anbei).
Die addPortType() MethodeDie addPortType($name) Methode fügt neue Port Typen zu einem WSDL Dokument (/definitions/portType) mit dem spezifizierten Port Typ Namen hinzu. Es verbindet ein Set von Web Service Methoden die im Sinne der Zend_Soap_Server Implementation definiert sind. Siehe http://www.w3.org/TR/wsdl#_porttypes für Details. Die addPortOperation() Methode
Die Jede Port Operation korrespondiert zu einer Methode der Klasse (wenn der Web Service auf einer Klasse basiert) oder Funktion (wenn der Web Service auf einem Set von Methoden basiert) im Sinne der Zend_Soap_Server Implementation. Sie fügt auch eine korrespondierende Port Operations Nachricht hinzu anhängig von den spezifizierten $input, $output und $fault Parametern.
Siehe http://www.w3.org/TR/wsdl#_request-response für Details. Die addBinding() MethodeDie addBinding($name, $portType) Methode fügt neue Bindungen in das WSDL Dokument ein (/definitions/binding). Der 'binding' WSDL Dokument Knoten definiert das Nachrichtenformat und Protokolldetails für Operationen und Nachrichten die von einem speziellen portType definiert sind (siehe http://www.w3.org/TR/wsdl#_bindings). Die Methode erzeugt einen Bindungsknoten und gibt diesen zurück. Dieser kann dann verwendet werden um mit aktuellen Daten gefüllt zu werden.
Die Zend_Soap_Server Implementation verwendet den
Die addBindingOperation() Methode
Die
Sie nimmt das Die Zend_Soap_Server Implementation fügt korrespondierende gebundene Einträge für jede Web Service Methode mit Eingabe und Ausgabe Einträgen hinzu die ein 'soap:body' Element als '<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> definieren. Siehe http://www.w3.org/TR/wsdl#_bindings für Details. Die addSoapBinding() Methode
Die Das '/definitions/binding/soap:binding' Element wird verwendet um zu signieren dass das Bindung zum SOAP Protokoll Format gebunden ist. Siehe http://www.w3.org/TR/wsdl#_bindings für Details. Die addSoapOperation() MethodeDie addSoapOperation($binding, $soap_action) Methode fügt einen SOAP Operations Eintrag ('soap:operation') zum Bindungs Element mit den spezifizierten Aktionen hinzu. Das 'style' Attribut des 'soap:operation' Elements wird nicht verwendet seit das Programmier Modell (RPC-orientiert oder Dokument-orientiert) die addSoapBinding() Methode verwenden kann. Das 'soapAction' Attribut des '/definitions/binding/soap:operation' Elements spezifiziert den Wert des SOAPAction Headers für diese Operation. Dieses Attribut wird für SOAP über HTTP benötigt und darf in keinem Fall für andere Transporte spezifiziert werden.
Die Zend_Soap_Server Implementation verwendet
Siehe http://www.w3.org/TR/wsdl#_soap:operation für Details. Die addService() MethodeDie addService($name, $port_name, $binding, $location) Methode fügt dem WSDL Dokument ein '/definitions/service' Element mit dem spezifizierten Web Service Namen, Port Namen, Bindung und Ort hinzu. WSDL 1.1 erlaubt es verschiedene Port Typen pro Service zu haben (Sets von Operationen). Diese Fähigkeit wird von der Zend_Soap_Server Implementation nicht verwendet und von der Zend_Soap_Wsdl Klasse nicht unterstützt. Die Zend_Soap_Server Implementation verwendet:
Siehe http://www.w3.org/TR/wsdl#_services für Details. Typ EntsprechungDie Zend_Soap WSDL Implementation der Zugriffsmethoden verwendet die folgenden Typ Entsprechungen zwischen PHP und SOAP Typen:
xsd: ein "http://www.w3.org/2001/XMLSchema" Namespace ist, ist
soap-enc: ein "http://schemas.xmlsoap.org/soap/encoding/" Namespace,
und tns: ist ein "Ziel Namespace" für das Service.
Empfangen von Typ InformationenDie getType($type) Methode kann verwendet werden um ein Mapping für einen spezifizierten PHP Typ zu erhalten:
Hinzufügen komplexer Typ InformationenDie addComplexType($type) Methode wird verwendet um komplexe Typen (PHP Klassen) zu einem WSDL Dokument hinzuzufügen. Es wird automatisch von der getType() Methode verwendet und fügt einen korrespondierenden komplexen Typen von Methodenparametern oder Rückgabetypen hinzu. Der Algorithmus für das Erkennen und Aufbauen basiert auf der aktuellen Strategie für die aktive Erkennung von komplexen Typen. Man kann die Strategie für die Erkennung setzen indem entweder der Klassenname as String spezifiziert wird, oder indem eine Instanz einer Zend_Soap_Wsdl_Strategy_Interface Implementation als dritter Parameter des Konstruktors verwendet wird, oder indem die setComplexTypeStrategy($strategy) Funktion von Zend_Soap_Wsdl verwendet wird. Die folgenden Strategien für die Erkennung existieren aktuell:
Die addComplexType() Methode erstellt ein '/definitions/types/xsd:schema/xsd:complexType' Element für jeden beschriebenen komplexen Typen mit dem Namen der spezifizierten PHP Klasse. Die Klassen Eigenschaften MÜSSEN ein Docblock Kapitel mit den beschriebenen PHP Typen haben damit die Eigenschaft in die WSDL Beschreibung hinzugefügt wird. addComplexType() prüft ob der Typ bereits im Typ Kapitel des WSDL Dokuments beschrieben wird. Es verhindert Duplikate wenn diese Methode zwei oder mehrmals aufgerufen wird und auch Rekursionen im Kapitel der Typ Definitionen. Siehe http://www.w3.org/TR/wsdl#_types für Details. Die addDocumentation() MethodeDie addDocumentation($input_node, $documentation) Methode fügt menschlich lesbare Dokumentation hinzu indem das optionale 'wsdl:document' Element verwendet wird. Das '/definitions/binding/soap:binding' Element wird verwendet um zu signieren das die Bindung zum SOAP Protokoll Format gebunden wurde. Siehe http://www.w3.org/TR/wsdl#_documentation für Details. Das endgültige WSDL Dokument erhalten
Die toXML(), toDomDocument() und
[1] wird als Skript
definiert
().
[3]
Standardmäßig wird mit der
Klasse
als Erkennungsalgorithmus für komplexe Typen erstellt. Der erste
Parameter des AutoDiscover Constructors nimmt jede Strategie für
komplexe Typen die
implementiert oder einen String mit dem Namen dieser Klasse. Für
Rückwärtskompatibilität mit den dem Boolean
werden Variablen auf dem
folgenden Weg geparst: Bei TRUE, wird
verwendet, und bei FALSE.
|