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.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::SoapClient() は、
非 WSDL モードで location
や
uri
オプションを指定しなかったときに
E_ERROR
エラーとなります。
wsdl
URI が読み込めなかった場合に
SoapFault をスローします。
例
例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%22, 'uri' => "http://test-uri/%22));$client = new SoapClient(null, array('location' => "http://localhost/soap.php%22, 'uri' => "http://test-uri/%22, '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")));?>