php-doc-en/reference/soap/soapclient/construct.xml
Côme Chilliet e64ea89bbe Remove PHP4 constructors from ext/soap documentation
Contructors were still documented as aliases to classname::classname
 with the real documentation in classname::classname.

Closes GH-332.
2021-01-22 14:26:20 +01:00

251 lines
9.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="soapclient.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>SoapClient::__construct</refname>
<refpurpose>SoapClient constructor</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<constructorsynopsis>
<modifier>public</modifier> <methodname>SoapClient::__construct</methodname>
<methodparam><type class="union"><type>string</type><type>null</type></type><parameter>wsdl</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>options</parameter><initializer>[]</initializer></methodparam>
</constructorsynopsis>
<para>
This constructor creates <classname>SoapClient</classname> objects
in <literal>WSDL</literal> or <literal>non-WSDL</literal> mode.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>wsdl</parameter></term>
<listitem>
<para>
URI of the <literal>WSDL</literal> file or &null; if working in
<literal>non-WSDL</literal> mode.
</para>
<note>
<para>
During development, WSDL caching may be disabled by the
use of the <literal>soap.wsdl_cache_ttl</literal> &php.ini; setting
otherwise changes made to the WSDL file will have no effect until
<literal>soap.wsdl_cache_ttl</literal> is expired.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
An array of options. If working in WSDL mode, this parameter is optional.
If working in non-WSDL mode, the <literal>location</literal> and
<literal>uri</literal> options must be set, where <literal>location</literal>
is the URL of the SOAP server to send the request to, and <literal>uri</literal>
is the target namespace of the SOAP service.
</para>
<para>
The <literal>style</literal> and <literal>use</literal> options only work in
non-WSDL mode. In WSDL mode, they come from the WSDL file.
</para>
<para>
The <literal>soap_version</literal> option should be one of either
<constant>SOAP_1_1</constant> or <constant>SOAP_1_2</constant> to
select SOAP 1.1 or 1.2, respectively. If omitted, 1.1 is used.
</para>
<para>
For HTTP authentication, the <literal>login</literal> and
<literal>password</literal> options can be used to supply credentials.
For making an HTTP connection through
a proxy server, the options <literal>proxy_host</literal>,
<literal>proxy_port</literal>, <literal>proxy_login</literal>
and <literal>proxy_password</literal> are also available.
For HTTPS client certificate authentication use
<literal>local_cert</literal> and <literal>passphrase</literal> options. An
authentication may be supplied in the <literal>authentication</literal>
option. The authentication method may be either
<constant>SOAP_AUTHENTICATION_BASIC</constant> (default) or
<constant>SOAP_AUTHENTICATION_DIGEST</constant>.
</para>
<para>
The <literal>compression</literal> option allows to use compression
of HTTP SOAP requests and responses.
</para>
<para>
The <literal>encoding</literal> 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.
</para>
<para>
The <literal>trace</literal> option enables tracing of request so faults
can be backtraced. This defaults to &false;
</para>
<para>
The <literal>classmap</literal> 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.
</para>
<para>
Setting the boolean <literal>trace</literal> option enables use of the
methods <link linkend="soapclient.getlastrequest">
SoapClient->__getLastRequest</link>,
<link linkend="soapclient.getlastrequestheaders">
SoapClient->__getLastRequestHeaders</link>,
<link linkend="soapclient.getlastresponse">
SoapClient->__getLastResponse</link> and
<link linkend="soapclient.getlastresponseheaders">
SoapClient->__getLastResponseHeaders</link>.
</para>
<para>
The <literal>exceptions</literal> option is a boolean value defining whether
soap errors throw exceptions of type <link
linkend="soapfault.construct">
SoapFault</link>.
</para>
<para>
The <literal>connection_timeout</literal> 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
<link linkend="ini.default-socket-timeout">default_socket_timeout</link> setting
is available.
</para>
<para>
The <literal>typemap</literal> option is an array of type mappings.
Type mapping is an array with keys <literal>type_name</literal>,
<literal>type_ns</literal> (namespace URI), <literal>from_xml</literal>
(callback accepting one string parameter) and <literal>to_xml</literal>
(callback accepting one object parameter).
</para>
<para>
The <literal>cache_wsdl</literal> option is one of
<constant>WSDL_CACHE_NONE</constant>,
<constant>WSDL_CACHE_DISK</constant>,
<constant>WSDL_CACHE_MEMORY</constant> or
<constant>WSDL_CACHE_BOTH</constant>.
</para>
<para>
The <literal>user_agent</literal> option specifies string to use in
<literal>User-Agent</literal> header.
</para>
<para>
The <literal>stream_context</literal> option is a <type>resource</type>
for <link linkend="context">context</link>.
</para>
<para>
The <literal>features</literal> option is a bitmask of
<constant>SOAP_SINGLE_ELEMENT_ARRAYS</constant>,
<constant>SOAP_USE_XSI_ARRAY_TYPE</constant>,
<constant>SOAP_WAIT_ONE_WAY_CALLS</constant>.
</para>
<para>
The <literal>keep_alive</literal> option is a boolean value defining whether
to send the <literal>Connection: Keep-Alive</literal> header or
<literal>Connection: close</literal>.
</para>
<para>
The <literal>ssl_method</literal> option is one of
<constant>SOAP_SSL_METHOD_TLS</constant>,
<constant>SOAP_SSL_METHOD_SSLv2</constant>,
<constant>SOAP_SSL_METHOD_SSLv3</constant> or
<constant>SOAP_SSL_METHOD_SSLv23</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<methodname>SoapClient::__construct</methodname> will generate an
<constant>E_ERROR</constant> error if the <literal>location</literal> and
<literal>uri</literal> options aren't provided in non-WSDL mode.
</para>
<para>
A <classname>SoapFault</classname> exception will be thrown if the
<parameter>wsdl</parameter> URI cannot be loaded.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>SoapClient::__construct</function> example</title>
<programlisting role="php">
<![CDATA[
<?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")));
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->