(PHP 5, PHP 7, PHP 8)
SoapClient::__construct — SoapClient-Konstruktor
$wsdl
, array $options
= []
)
Dieser Konstruktor erstellt SoapClient-Objekte im
WSDL
- oder non-WSDL
-Modus.
wsdl
Die URI der WSDL
-Datei oder null
, wenn der
non-WSDL
-Modus verwendet wird.
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, wennsoap.wsdl_cache_ttl
abgelaufen ist.
options
Ein Array mit Optionen. Wenn im WSDL-Modus gearbeitet wird, ist dieser
Parameter optional. Im non-WSDL-Modus müssen die Optionen
location
und uri
gesetzt werden.
Dabei enthält location
die URL des SOAP-Servers, an
den die Anfrage gesendet werden soll, und uri
den
Ziel-Namensraum 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
sollte entweder
SOAP_1_1
oder SOAP_1_2
sein, um
SOAP 1.1 bzw. 1.2 auszuwählen. Wird sie weggelassen, wird 1.1
verwendet.
Für die HTTP-Authentifizierung können die Optionen
login
und password
verwendet
werden, um Anmeldeinformationen anzugeben. Um eine HTTP-Verbindung über
einen Proxy-Server herzustellen, stehen auch die Optionen
proxy_host
, proxy_port
,
proxy_login
und proxy_password
zur Verfügung. Für die Authentifizierung mit HTTPS-Client-Zertifikaten
sind die Optionen local_cert
und
passphrase
zu verwenden. Eine Authentifizierung kann
mit der Option authentication
angegeben werden. Die
Authentifizierungsmethode kann entweder
SOAP_AUTHENTICATION_BASIC
(Standard) oder
SOAP_AUTHENTICATION_DIGEST
sein.
Die Option compression
ermöglicht die Komprimierung
von HTTP-SOAP-Anfragen und -Antworten.
Die Option encoding
definiert die interne
Zeichenkodierung. Diese Option ändert nicht die Kodierung von
SOAP-Anfragen (sie ist immer utf-8), sondern wandelt Zeichenketten in
diese Kodierung um.
Die Option trace
aktiviert die Aufzeichnung von
Anfragen, damit Fehler zurückverfolgt werden können. Die Voreinstellung
ist false
.
Die Option classmap
kann verwendet werden, um einige
WSDL-Typen auf PHP-Klassen abzubilden. Diese Option muss ein Array mit
WSDL-Typen als Schlüssel und Namen von PHP-Klassen als Werte sein.
Das Setzen der booleschen Option trace
ermöglicht
die Verwendung der Methoden
SoapClient->__getLastRequest,
SoapClient->__getLastRequestHeaders,
SoapClient->__getLastResponse und
SoapClient->__getLastResponseHeaders.
Die Option exceptions
ist ein boolescher Wert, der
festlegt, ob Soap-Fehler Exceptions vom Typ SoapFault auslösen.
Die Option connection_timeout
definiert einen
Timeout in Sekunden für die Verbindung zum SOAP-Dienst. Diese Option
definiert keinen Timeout für Dienste mit langsamen Antworten. Um die
Zeit zu begrenzen, die auf die Beendigung von Aufrufen gewartet wird,
steht die Einstellung default_socket_timeout zur
Verfügung.
Die Option typemap
ist ein Array mit Typzuordnungen.
Die Typzuordnung ist ein Array mit den Schlüsseln
type_name
, type_ns
(Namensraum-URI), from_xml
(ein Callback, der einen
Zeichenketten-Parameter akzeptiert) und to_xml
(ein Callback, der einen Objekt-Parameter akzeptiert).
Die Option cache_wsdl
ist entweder
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
resource für den context.
Die Option features
ist eine Bit-Maske aus
SOAP_SINGLE_ELEMENT_ARRAYS
,
SOAP_USE_XSI_ARRAY_TYPE
und
SOAP_WAIT_ONE_WAY_CALLS
.
Die Option keep_alive
ist ein boolescher Wert, der
festlegt, ob der Connection: Keep-Alive
-Header oder
Connection: close
gesendet wird.
Die Option ssl_method
ist eine der Konstanten
SOAP_SSL_METHOD_TLS
,
SOAP_SSL_METHOD_SSLv2
,
SOAP_SSL_METHOD_SSLv3
und
SOAP_SSL_METHOD_SSLv23
.
Wenn die Optionen location
und uri
im non-WSDL-Modus nicht angegeben werden, erzeugt
SoapClient::__construct() einen
E_ERROR
-Fehler.
Wenn die wsdl
-URI nicht geladen werden kann, wird
eine SoapFault-Exception ausgelöst.
Beispiel #1 SoapClient::__construct()-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));
$client = new SoapClient("ein.wsdl", array('encoding'=>'ISO-8859-1'));
class MeinBuch {
public $titel;
public $autor;
}
$client = new SoapClient("buecher.wsdl", array('classmap' => array('buch' => "MeinBuch")));
?>