(PHP 5, PHP 7, PHP 8)
SoapClient::__construct — SoapClient constructor
$wsdl
, array $options
= [])
This constructor creates SoapClient objects
in WSDL
or non-WSDL
mode.
wsdl
URI of the WSDL
file or null
if working in
non-WSDL
mode.
注意:
During development, WSDL caching may be disabled by the use of the
soap.wsdl_cache_ttl
php.ini setting otherwise changes made to the WSDL file will have no effect untilsoap.wsdl_cache_ttl
is expired.
options
An array of options. If working in WSDL mode, this parameter is optional.
If working in non-WSDL mode, the location
and
uri
options must be set, where location
is the URL of the SOAP server to send the request to, and uri
is the target namespace of the SOAP service.
The style
and use
options only work in
non-WSDL mode. In WSDL mode, they come from the WSDL file.
The soap_version
option should be one of either
SOAP_1_1
or SOAP_1_2
to
select SOAP 1.1 or 1.2, respectively. If omitted, 1.1 is used.
For HTTP authentication, the login
and
password
options can be used to supply credentials.
For making an HTTP connection through
a proxy server, the options proxy_host
,
proxy_port
, proxy_login
and proxy_password
are also available.
For HTTPS client certificate authentication use
local_cert
and passphrase
options. An
authentication may be supplied in the authentication
option. The authentication method may be either
SOAP_AUTHENTICATION_BASIC
(default) or
SOAP_AUTHENTICATION_DIGEST
.
The compression
option allows to use compression
of HTTP SOAP requests and responses.
The encoding
option defines internal character
encoding. This option does not change the encoding of SOAP requests (it is
always utf-8), but converts strings into it.
The trace
option enables tracing of request so faults
can be backtraced. This defaults to false
The classmap
option can be used to map some WSDL
types to PHP classes. This option must be an array with WSDL types
as keys and names of PHP classes as values.
Setting the boolean trace
option enables use of the
methods
SoapClient->__getLastRequest,
SoapClient->__getLastRequestHeaders,
SoapClient->__getLastResponse and
SoapClient->__getLastResponseHeaders.
The exceptions
option is a boolean value defining whether
soap errors throw exceptions of type
SoapFault.
The connection_timeout
option defines a timeout in seconds
for the connection to the SOAP service. This option does not define a timeout
for services with slow responses. To limit the time to wait for calls to finish the
default_socket_timeout setting
is available.
The typemap
option is an array of type mappings.
Type mapping is an array with keys type_name
,
type_ns
(namespace URI), from_xml
(callback accepting one string parameter) and to_xml
(callback accepting one object parameter).
The cache_wsdl
option is one of
WSDL_CACHE_NONE
,
WSDL_CACHE_DISK
,
WSDL_CACHE_MEMORY
or
WSDL_CACHE_BOTH
.
The user_agent
option specifies string to use in
User-Agent
header.
The stream_context
option is a resource
for context.
The features
option is a bitmask of
SOAP_SINGLE_ELEMENT_ARRAYS
,
SOAP_USE_XSI_ARRAY_TYPE
,
SOAP_WAIT_ONE_WAY_CALLS
.
The keep_alive
option is a boolean value defining whether
to send the Connection: Keep-Alive
header or
Connection: close
.
The ssl_method
option is one of
SOAP_SSL_METHOD_TLS
,
SOAP_SSL_METHOD_SSLv2
,
SOAP_SSL_METHOD_SSLv3
or
SOAP_SSL_METHOD_SSLv23
.
SoapClient::__construct() will generate an
E_ERROR
error if the location
and
uri
options aren't provided in non-WSDL mode.
A SoapFault exception will be thrown if the
wsdl
URI cannot be loaded.
示例 #1 SoapClient::__construct() example
<?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' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/",
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL));
$client = new SoapClient("some.wsdl",
array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));
class MyBook {
public $title;
public $author;
}
$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>