Zend_Soap_ServerDie Zend_Soap_Server Klasse ist dazu gedacht den Web Service Teil der Entwicklung für PHP Programmierer zu vereinfachen. Sie kann in WSDL oder nicht-WSDL Modus verwendet werden, und verwendet Klassen oder Funktionen um eine Web Service API zu definieren. Wenn die Zend_Soap_Server Komponente im WSDL Modus arbeitet, verwendet Sie ein bereits vorbereitetes WSDL Dokument um das Verhalten des Server Objekts und die Optionen des Transport Layers zu definieren. Ein WSDL Dokument kann automatisch erzeugt werden mit der Funktionalität die von der Zend_Soap_AutoDiscovery Komponente angeboten wird sollte händisch erzeugt werden durch Verwendung der Zend_Soap_Wsdl Klasse oder irgendeinem anderen XML Erstellungstool. Wenn der nicht-WSDL Modus verwendet wird, müssen alle Protokoll-Optionen gesetzt werden indem der Options-Mechanismus verwendet wird. Der Zend_Soap_Server KonstruktorDer Contructor von Zend_Soap_Server sollte für WSDL und nicht-WSDL Modi unterschiedlich verwendet werden. Der Zend_Soap_Server Konstruktor für den WSDL ModusDer Zend_Soap_Server Konstruktor nimmt zwei optionale Parameter wenn er im WSDL Modus arbeitet:
Der Zend_Soap_Server Konstruktor für den nicht-WSDL ModusDer erste Parameter des Konstruktors muß auf NULL gesetzt werden wenn man plant die Funktionalität von Zend_Soap_Server im nicht-WSDL Modus zu verwenden. Man muß in diesem Fall auch die 'uri' Option setzen (siehe anbei). Der zweite Parameter des Konstruktors ($options) ist ein Array mit Optionen um ein SOAP Server Objekt zu erstellen [3] setOptions($options) . Die folgenden Optionen werden im nicht-WSDL Modus erkannt:
Methoden um eine Web Service API zu definierenEs gibt zwei Wege um eine Web Service API zu definieren wenn man Zugriff auf den eigenen PHP Code über SOAP geben will. Der Erste ist das Anfügen einer Klasse zum Zend_Soap_Server Objekt welche eine Web Service API komplett beschreibt:
Die zweite Methode der Definition einer Web Service API ist die Verwendung eines Sets von Funktionen und addFunction() oder loadFunctions() Methoden:
Anfragen und Antwort Objekte behandeln
Die Zend_Soap_Server Komponente führt Anfrage/Antwort-Bearbeitung automatisch durch. Sie erlaubt es aber diese zu fangen und Vor- und Nach-bearbeitungen durchzuführen. Anfrage BearbeitungDie Zend_Soap_Server::handle() Methode nimmt Anfragen vom Standard-Eingabe Stream ('php://input') entgegen. Sie kann übergangen werden durch die Angabe von optionalen Parametern an die handle() Methode oder durch setzen einer Anfrage durch Verwendung der setRequest() Methode:
Anfrage Objekte können dargestellt werden durch Verwendung der folgenden Dinge:
Die zuletzt bearbeitete Anfrage kann durch Verwendung der getLastRequest() Methode als XML String empfangen werden: Antworten vor-bearbeitenDie Zend_Soap_Server::handle() Methode wirft die erzeugte Antwort automatisch auf den Ausgabe Stream aus. Das kann durch Verwendung von setReturnResponse() mit TRUE oder FALSE als Parameter blockiert werden [4] setReturnResponse() . Die erzeugte Antwort wird in diesem Fall durch die handle() Methode zurückgegeben.
Die letzte Antwort kann auch mit der getLastResponse() Methode empfangen werden um Vor-Bearbeitungen durchzuführen: [1]
Kann später gesetzt werden durch Verwendung der
Methode.
[2]
Optionen können durch Verwendung der
Methode später
gesetzt werden.
[3]
Optionen können später gesetzt werden indem die
Methode verwendet wird.
[4]
Der aktuelle Status des Rückgabe Antwort Flags kann mit der
Methode abgefragt werden.
|