PHP Conference Japan 2024

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__constructSoapServer 建構子

說明

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

此建構子允許以 WSDL 或非 WSDL 模式建立 SoapServer 物件。

參數

wsdl

要在 WSDL 模式下使用 SoapServer,請傳入 WSDL 檔案的 URI。否則,請傳入 null 並將 uri 選項設定為伺服器的目標命名空間。

選項

允許設定預設的 SOAP 版本 (soap_version)、內部字元編碼 (encoding) 和 actor URI (actor)。

classmap 選項可用於將一些 WSDL 類型映射到 PHP 類別。此選項必須是一個陣列,以 WSDL 類型作為鍵,PHP 類別的名稱作為值。

typemap 選項是一個類型映射的陣列。類型映射是一個陣列,其鍵包含 type_nametype_ns(命名空間 URI)、from_xml(接受一個字串參數的回呼函式)和 to_xml(接受一個物件參數的回呼函式)。

cache_wsdl 選項可以是 WSDL_CACHE_NONEWSDL_CACHE_DISKWSDL_CACHE_MEMORYWSDL_CACHE_BOTH

還有一個 features 選項,可以設定為 SOAP_WAIT_ONE_WAY_CALLSSOAP_SINGLE_ELEMENT_ARRAYSSOAP_USE_XSI_ARRAY_TYPE

send_errors 選項可以設定為 false,以傳送一個通用的錯誤訊息(「內部錯誤」),而不是傳送其他情況下會傳送的特定錯誤訊息。

範例

範例 #1 SoapServer::__construct() 範例

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

?>

另請參閱

新增註釋

使用者貢獻的註釋 1 則註釋

匿名
12 年前
// 適用於本地端的伺服器與客戶端

// server.php

<?php
類別 MyClass {
public function
helloWorld() {

return
'Hallo Welt '. print_r(func_get_args(), true);
}
}

try {
$server = new SOAPServer(
NULL,
array(
'uri' => 'https://127.0.0.1/soap/server.php'
)
);

$server->setClass('MyClass');
$server->handle();
}

catch (
SOAPFault $f) {
print
$f->faultstring;
}

?>

// client.php

<?php
$client
= new SoapClient(null, array(
'location' => "https://127.0.0.1/soap/server.php",
'uri' => "https://127.0.0.1/soap/server.php",
'trace' => 1 ));

echo
$return = $client->__soapCall("helloWorld",array("world"));
?>

// 覺得如何?
To Top