(PHP 5, PHP 7, PHP 8)
SoapClient::__construct — SoapClient のコンストラクタ
$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.1、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::__construct() は、
非 WSDL モードで location
や
uri
オプションを指定しなかったときに
E_ERROR
エラーとなります。
wsdl
URI が読み込めなかった場合に
SoapFault をスローします。
例1 SoapClient::__construct() の例
<?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")));
?>