SoapClient::SoapClient

(PHP 5, PHP 7)

SoapClient::SoapClientSoapClient-Konstruktor

Beschreibung

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Der Konstruktor erstellt SoapClient-Objekte im WSDL- oder non-WSDL-Modus.

Parameter-Liste

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 URL des SOAP-Servers, an den die Anfrage gesendet werden soll, 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 sollte entweder SOAP_1_1 oder SOAP_1_2 sein, um SOAP 1.1 bzw. 1.2 zu wählen. Wird sie ausgelassen, wird 1.1 verwendet.

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.

Die keep_alive Option ist ein boolescher Wert, der definiert, ob der Connection: Keep-Alive oder Connection: close Header gesendet werden soll.

Die ssl_method Option ist entweder SOAP_SSL_METHOD_TLS, SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 oder SOAP_SSL_METHOD_SSLv23.

Fehler/Exceptions

SoapClient::SoapClient() erzeugt einen E_ERROR Fehler, wenn die location und uri Optionen im non-WSDL Modus nicht angegeben wurden.

Eine SoapFault Exception wird ausgelöst, wenn der wsdl URI nicht geladen werden kann.

Changelog

Version Beschreibung
5.5.0 Neue ssl_method Option.
5.4.0 Neue keep_alive Option.

Beispiele

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));

$client = new SoapClient("ein.wsdl", array('encoding'=>'ISO-8859-1'));

class 
MyBook {
    public 
$title;
    public 
$author;
}

$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>