(PHP 5 >= 5.0.1)
SoapClient::SoapClient — SoapClient-Konstruktor
Der Konstruktor erstellt SoapClient-Objekte im WSDL- oder non-WSDL-Modus.
wsdl
URI der WSDL-Datei oder NULL
, wenn der
non-WSDL-Modus verwendet werden soll.
Hinweis:
Während der Entwicklung sollte das WSDL-Caching durch die Verwendung der soap.wsdl_cache_ttl-Option in der php.ini ausgeschaltet werden. Andernfalls wirken sich Änderungen an der WSDL-Datei erst aus, wenn soap.wsdl_cache_ttl abgelaufen ist.
options
Ein Array aus Optionen. Wenn im WSDL-Modus gearbeitet wird, ist dieser Parameter optional. Im non-WSDL-Modus müssen die Optionen location und uri gesetzt sein. Dabei enthält location den anzufragenden URL und uri den Zielnamensraum des SOAP-Dienstes.
Die Optionen style und use funktionieren nur im non-WSDL-Modus. Im WSDL-Modus werden sie durch das WSDL-File bestimmt.
Die Option soap_version gibt an, ob der SOAP 1.1- (Standardvorgabe) oder der SOAP 1.2-Client verwendet werden soll.
Die Optionen login und password
können verwendet werden, um Daten für die HTTP-Authentifizierung zu
übergeben. Um eine Verbindung über einen Proxy-Server
herzustellen, stehen die Optionen proxy_host,
proxy_port, proxy_login
und proxy_password zur Verfügung.
Für Authentifizierung über HTTPS-Client-Zertifikate nutzen Sie die
Optionen local_cert und passphrase.
Eine Authentifizierung kann in der
authentication-Option mit Werten befüllt werden. Die
Authentifizierungsmethode kann dabei entweder
SOAP_AUTHENTICATION_BASIC
(Standardvorgabe) oder
SOAP_AUTHENTICATION_DIGEST
sein.
HTTP-SOAP-Anfragen und -Antworten können mit Hilfe von compression komprimiert werden.
Die Option encoding definiert die intern verwendete Zeichenkodierung. Sie ändert nicht die Kodierung der SOAP-Anfrage selbst (die bleibt immer utf-8), es werden lediglich die Zeichenketten konvertiert.
Die trace-Option schaltet das Tracing von Anfragen
ein. Damit können fehler zurückverfolgt werden. Der Standardwert ist
FALSE
.
Die classmap-Option kann verwendet werden, um WSDL-Typen auf PHP-Klassen abzubilden. Die Option muss ein Array mit den WSDL-Typen als Schlüssel und den PHP-Klassennamen als Wert sein.
Das Setzen der trace-Option aktiviert den Gebrauch der Methoden SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse und SoapClient->__getLastResponseHeaders.
Die Option exceptions ist ein boolscher Wert. Sie definiert, ob bei SOAP-Fehlern Exceptions vom Typ SoapFault geworfen werden sollen.
Zeitüberschreitung in Sekunden für Verbindungen zu einem SOAP-Service können mit der Option connection_timeout angegeben werden. Diese Option definiert keine Zeitüberschreitung für Dienste mit langsamen Antwortzeiten. Um zu definieren, wie lange auf die Beendung einer Anfrage gewartet werden soll, steht die Einstellung default_socket_timeout zur Verfügung.
Die Option typemap ist ein Array mit Typabbildungen. Jede Abbildung ist ein Array mit den Schlüsseln type_name, type_ns (Namespace-URI), from_xml (Callback akzeptiert einen String-Parameter) und to_xml (callback akzeptiert einen Objekt-Parameter).
Die Option cache_wsdl ist eine der folgenden Konstanten:
WSDL_CACHE_NONE
,
WSDL_CACHE_DISK
,
WSDL_CACHE_MEMORY
oder
WSDL_CACHE_BOTH
.
Die Option user_agent gibt die Zeichenkette an, die im User-Agent-Header verwendet werden soll.
Die Option stream_context ist eine Ressource auf context.
The features option is a bitmask of
SOAP_SINGLE_ELEMENT_ARRAYS
,
SOAP_USE_XSI_ARRAY_TYPE
,
SOAP_WAIT_ONE_WAY_CALLS
.
Beispiel #1 SoapClient::SoapClient()-Beispiel
<?php
$client = new SoapClient("ein.wsdl");
$client = new SoapClient("ein.wsdl", array('soap_version' => SOAP_1_2));
$client = new SoapClient("ein.wsdl", array('login' => "ein_name",
'password' => "ein_passwort"));
$client = new SoapClient("ein.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080));
$client = new SoapClient("ein.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080,
'proxy_login' => "ein_name",
'proxy_password' => "ein_passwort"));
$client = new SoapClient("ein.wsdl", array('local_cert' => "cert_key.pem"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/",
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL));
$client = new SoapClient("ein.wsdl",
array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
$server = new SoapClient("ein.wsdl", array('encoding'=>'ISO-8859-1'));
class MyBook {
public $title;
public $author;
}
$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>