<?xml version='1.0' encoding='iso-8859-1'?>
<!-- $Revision: 1.6 $ -->
<refentry id="function.soap-soapclient-construct">
 <refnamediv>
  <refname>SoapClient->__construct()</refname>
  <refpurpose>
   SoapClient constructor
  </refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <classsynopsis>
   <ooclass><classname>SoapClient</classname></ooclass>
   <constructorsynopsis>
    <methodname>__construct</methodname>
    <methodparam><type>mixed</type><parameter>wsdl</parameter></methodparam>
    <methodparam choice="opt"><type>array</type><parameter>options</parameter></methodparam>
   </constructorsynopsis>
  </classsynopsis>
  <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>
     </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, you must set the <literal>location</literal> 
       and <literal>uri</literal> options, where <literal>location</literal> is 
       the URL to request 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 specifies whether to use SOAP
       1.1, or SOAP 1.2 client.
      </para>
      <para>
       For HTTP authentication, you may use the <literal>login</literal> and
       <literal>password</literal> options. For making an HTTP connection through
       a proxy server, use the options <literal>proxy_host</literal>,
       <literal>proxy_port</literal>, <literal>proxy_login</literal>
       and <literal>proxy_password</literal>.
       For HTTPS client certificate authentication use
       <literal>local_cert</literal> and <literal>passphrase</literal> options.
      </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>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>
       The <literal>trace</literal> and <literal>exceptions</literal> options
       are useful for debuging purpose.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 <refsect1 role="examples">
  &reftitle.examples;
    <para>
     <example>
      <title>SoapClient examples</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));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
    public $title;
    public $author;
}

$server = 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:"../../../../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
-->