// Workin Server with Client for localhost
// server.php
<?php
class MyClass {
public function helloWorld() {
return 'Hallo Welt '. print_r(func_get_args(), true);
}
}
try {
$server = new SOAPServer(
NULL,
array(
'uri' => 'http://localhost/soap/server.php'
)
);
$server->setClass('MyClass');
$server->handle();
}
catch (SOAPFault $f) {
print $f->faultstring;
}
?>
// client.php:
<?php
$client = new SoapClient(null, array(
'location' => "http://localhost/soap/server.php",
'uri' => "http://localhost/soap/server.php",
'trace' => 1 ));
echo $return = $client->__soapCall("helloWorld",array("world"));
?>
// Hope you like it
SoapServer->__construct()
(PHP 5 >= 5.0.1)
SoapServer->__construct() — SoapServer-Konstruktor
Beschreibung
Der Konstruktor erlaubt das Erzeugen eines SoapServer-Objekts in WSDL- oder nicht-WSDL-Modus.
Parameter-Liste
-
wsdl -
Wenn der WSDL-Modus verwendet werden soll, muss die URI auf eine WSDL-Datei verweisen. Ansonsten muss er auf
NULLgesetzt werden und die uri vewendet werden. -
options -
Erlaubt das Setzen der benutzten SOAP-Version (soap_version), der internen Zeichenkodierung (encoding), und URI (actor).
Die classmap Option kann genutzt werden, um WSDL-Typen auf PHP-Klassen abzubilden. Die Option muß ein Array sein mit den WSDL-Typen als Schlüssel und den PHP-Klassennamen als Wert.
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).
Weitere Optionen sind features und cache_wsdl.
Beispiele
Beispiel #1 Beispiele
<?php
$server = new SoapServer("some.wsdl");
$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));
$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));
$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
class MyBook {
public $title;
public $author;
}
$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>
