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选项设置为服务器的目标命名空间。

options

允许设置默认SOAP版本(soap_version)、内部字符编码(encoding)和参与者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年前
// 用于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' => '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