SoapClient コンストラクタ

# SoapClient::SoapClient

(PHP 5, PHP 7)

SoapClient::SoapClient — SoapClient コンストラクタ

### 説明

public SoapClient::SoapClient ( mixed `$wsdl` [, array `$options` ] )

このコンストラクタは、WSDL モードもしくは 非 WSDL モードで SoapClient オブジェクトを生成します。

### パラメータ

`wsdl`

  WSDL ファイルの URI もしくは 非 WSDL モードの場合 `NULL`

  > 注意:

  > 開発中は、WSDL のキャッシュを php.ini の soap.wsdl_cache_ttl で無効にしておくとよいでしょう。 そうしないと、WSDL を変更しても soap.wsdl_cache_ttl で設定した時間が経過するまで それが反映されなくなります。

`options`

  オプションの配列。もし WSDL モードで動作させる場合、 このパラメータはオプションです。非 WSDL モードで動作させる場合、 location と uri オプションを指定する必要があります。ここで、 location はリクエストの送り先である SOAP サーバーの URL、 uri は SOAP サービスのターゲット名前空間です。

  style および use オプション は非 WSDL モードでのみ動作します。 WSDL モードでは、これらは WSDL ファイルで指定されます。

  soap_version オプションは、 `SOAP_1_1` あるいは `SOAP_1_2` のどちらかを指定しなければいけません。それぞれ SOAP 1.2、SOAP 1.2 を表します。 省略した場合は 1.1 を使います。

  HTTP 認証用として、login および password オプションが使用可能です。 プロキシサーバー経由で HTTP 接続を確立する場合は、 proxy_host, proxy_port, proxy_login および proxy_password の各オプションを使用してください。 HTTPS クライアント証明書による認証には local_cert と passphrase を使用します。認証情報は authentication オプションで指定します。認証方式は `SOAP_AUTHENTICATION_BASIC` (デフォルト) あるいは `SOAP_AUTHENTICATION_DIGEST` のいずれかとなります。

  compression オプションにより、 HTTP SOAP リクエストやレスポンスの圧縮を行うことができます。

  encoding オプションは内部的な文字エンコーディングを定義します。 このオプションは SOAP リクエストのエンコーディング (常に utf-8) を変更しませんが、その中の文字列を変換します。

  trace オプションはリクエストのトレースを有効にします。 失敗したときにバックトレースが可能となります。 デフォルトは `FALSE` です。

  classmap オプションは WSDL 型を PHP クラスにマッピングするために使用可能です。 このオプションには、キーとしてWSDL 型、値として PHP クラスの名前を持つ配列を指定する必要があります。

  boolean のオプション trace を設定すると、 SoapClient->__getLastRequest、 SoapClient->__getLastRequestHeaders、 SoapClient->__getLastResponse および SoapClient->__getLastResponseHeaders といったメソッドが使用できるようになります。

  exceptions オプションは boolean 値で、soap のエラー時に SoapFault 型の例外をスローさせるかどうかを設定します。

  connection_timeout オプションは、SOAP サービスに接続する際のタイムアウト秒数を指定します。 これを使用しても、レスポンスが遅いサービスのタイムアウトを定義することはできません。 サービスのコールが完了するまでの待ち時間を制限するには、設定項目 default_socket_timeout を使用します。

  typemap オプションは、型マッピングの配列です。 この配列のキーは type_name、 type_ns (名前空間 URI)、from_xml (引数として文字列をひとつ受け取るコールバック) そして to_xml (引数としてオブジェクトをひとつ受け取るコールバック) です。

  cache_wsdl オプションは `WSDL_CACHE_NONE`、 `WSDL_CACHE_DISK`、 `WSDL_CACHE_MEMORY` あるいは `WSDL_CACHE_BOTH` のいずれかです。

  user_agent オプションは、 User-Agent ヘッダで使用する文字列を指定します。

  stream_context オプションは、 context 用のリソースです。

  features オプションは `SOAP_SINGLE_ELEMENT_ARRAYS`、 `SOAP_USE_XSI_ARRAY_TYPE`、 `SOAP_WAIT_ONE_WAY_CALLS` のビットマスクです。

  keep_alive オプションは boolean 値で、 Connection: Keep-Alive ヘッダーと Connection: close ヘッダーのどちらを送信するかを決めます。

  ssl_method オプションは `SOAP_SSL_METHOD_TLS` か `SOAP_SSL_METHOD_SSLv2`、 `SOAP_SSL_METHOD_SSLv3`、あるいは `SOAP_SSL_METHOD_SSLv23` のいずれかです。

### エラー / 例外

SoapClient::SoapClient() は、 非 WSDL モードで location や uri オプションを指定しなかったときに `E_ERROR` エラーとなります。

`wsdl` URI が読み込めなかった場合に SoapFault をスローします。

### 変更履歴

バージョン | 説明
--- | ---
5.5.0 | ssl_method オプションが追加されました。
5.4.0 | keep_alive オプションが追加されました。

### 例

例1 SoapClient::SoapClient() の例

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