(PHP 5, PHP 7, PHP 8)
SoapServer::__construct — SoapServer コンストラクタ
$wsdl
, array $options
= [])このコンストラクタにより SoapServer オブジェクトを WSDL または非 WSDL モードで作成することが可能です。
wsdl
WSDL モードの場合、これに WSDL ファイルの URI を指定する必要があります。
WSDL モードでない場合、null
を指定し、uri
オプションを設定する必要があります。
options
デフォルトの SOAP バージョン (soap_version
),
内部の文字エンコーディング (encoding
),
アクターの URI (actor
) を指定することができます。
classmap
オプションにより、WSDL 型を PHP
のクラスにマッピングすることが可能です。
このオプションには、キーとしてWSDL 型、値として PHP
クラスの名前を持つ配列を指定する必要があります。
typemap
オプションは、型マッピングの配列です。
この配列のキーは type_name
、
type_ns
(名前空間 URI)、from_xml
(引数として文字列をひとつ受け取るコールバック) そして to_xml
(引数としてオブジェクトをひとつ受け取るコールバック) です。
cache_wsdl
オプションは、
WSDL_CACHE_NONE
、
WSDL_CACHE_DISK
、
WSDL_CACHE_MEMORY
あるいは
WSDL_CACHE_BOTH
のいずれかです。
その他に features
というオプションもあり、
SOAP_WAIT_ONE_WAY_CALLS
、
SOAP_SINGLE_ELEMENT_ARRAYS
、
SOAP_USE_XSI_ARRAY_TYPE
を設定することができます。
send_errors
オプションを false
にすると、
個別のエラーメッセージではなく汎用的なメッセージ ("Internal error") を送信できます。
例1 SoapServer::__construct() の例
<?php
$server = new SoapServer("some.wsdl");
$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));
$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));
$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
class MyBook {
public $title;
public $author;
}
$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>