SoapServer::__construct
(PHP 5, PHP 7, PHP 8)
SoapServer::__construct — SoapServer コンストラクタ
説明
このコンストラクタにより 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")));
?>
User Contributed Notes 1 note
// Workin Server with Client for localhost
// server.php
<?php
class MyClass {
public function helloWorld() {
return 'Hallo Welt '. print_r(func_get_args(), true);
}
}
try {
$server = new SOAPServer(
NULL,
array(
'uri' => 'http://localhost/soap/server.php'
)
);
$server->setClass('MyClass');
$server->handle();
}
catch (SOAPFault $f) {
print $f->faultstring;
}
?>
// client.php:
<?php
$client = new SoapClient(null, array(
'location' => "http://localhost/soap/server.php",
'uri' => "http://localhost/soap/server.php",
'trace' => 1 ));
echo $return = $client->__soapCall("helloWorld",array("world"));
?>
// Hope you like it