Forum und email

SoapClient->__construct()

(No version information available, might be only in CVS)

SoapClient->__construct() — SoapClient-Konstruktor

Beschreibung

SoapClient
__construct ( mixed $wsdl [, array $options ] )

Der Konstruktor erzeugt ein SoapClient-Objekt im WSDL- oder nicht-WSDL-Modus.

Parameter Liste

wsdl

URI der WSDL-Datei oder NULL wenn der nicht-WSDL-Modus verwendet werden soll.

Hinweis: Während der Entwicklung ist es sinnvoll das WSDL-Caching, definiert durch die php.ini Einstellung soap.wsdl_cache_ttl, zu deaktivieren, da sonst Änderungen an der WSDL-Datei erst Wirkung zeigen, sobald die soap.wsdl_cache_ttl erreicht wurde.

options

Ein Array mit Optionen. Optional wenn der WSDL-Modus verwendet wird, sonst müssen die Werte location und uri gesetzt werden, wobei location die URL der Anfrage und uri der Zielnamensraum des SOAP-Service ist.

Die style und use Optionen werden nur im nicht-WSDL-Modus verwendet. In WSDL-Modus werden diese von der WSDL-Datei geliefert.

Die soap_version Option gibt vor, welche SOAP-Client-Version verwendet werden soll (SOAP 1.1 oder SOAP 1.2).

Die Optionen login und password können für HTTP-Authentifizierung verwendet werden. 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.

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.

In der classmap Option können WSDL-Typen auf PHP-Klassen abgebildet werden. Die Option muß ein Array sein mit den WSDL-Typen als Schlüssel und den PHP-Klassennamen als Wert.

Setzen der trace Option (boolean) aktiviert den Gebrauch der Methoden SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse und SoapClient->__getLastResponseHeaders.

Die Option exceptions (boolean) 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.

Beispiele

Example#1 Beispiele

<?php

$client 
= new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            
'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            
'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            
'proxy_port'     => 8080,
                                            
'proxy_login'    => "some_name",
                                            
'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "https://localhost/soap.php",
                                     
'uri'      => "https://test-uri/"));

$client = new SoapClient(null, array('location' => "https://localhost/soap.php",
                                     
'uri'      => "https://test-uri/",
                                     
'style'    => SOAP_DOCUMENT,
                                     
'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl"
  array(
'compression' => SOAP_COMPRESSION_ACCEPT SOAP_COMPRESSION_GZIP));

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

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

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

?>