CakeFest 2024: The Official CakePHP Conference

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__constructSoapServer-Konstruktor

Beschreibung

public SoapServer::__construct(?string $wsdl, array $options = [])

Dieser Konstruktor erlaubt das Erzeugen eines SoapServer-Objekts im WSDL- oder non-WSDL-Modus.

Parameter-Liste

wsdl

Wenn der WSDL-Modus verwendet werden soll, muss die URI auf eine WSDL-Datei verweisen. Ansonsten muss null übergeben, und die uri-Option auf den Zielnamensraum des Servers gesetzt werden.

options

Erlaubt das Setzen der Standard-SOAP-Version (soap_version), der internen Zeichenkodierung (encoding), und der Actor-URI (actor).

Die classmap Option kann genutzt werden, um einige WSDL-Typen auf PHP-Klassen abzubilden. Die Option mussß 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 (Namensraum-URI), from_xml (Callback, der einen String-Parameter akzeptiert) und to_xml (Callback, der einen Objekt-Parameter akzeptiert).

Die cache_wsdl-Option ist entweder WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY oder WSDL_CACHE_BOTH.

Weiterhin gibt es eine features-Option, die auf SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS oder SOAP_USE_XSI_ARRAY_TYPE gesetzt werden kann.

Die send_errors-Option kann auf false gesetzt werden, um eine generische Fehlermeldung ("Internal error") anstelle einer spezifischen zu senden.

Beispiele

Beispiel #1 SoapServer::__construct()-Beispiel

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

?>

Siehe auch

add a note

User Contributed Notes 1 note

up
13
Anonymous
11 years ago
// 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
To Top