SOAPサーバコード
PHPでのSOAPサーバオブジェクトの作成は、非常に簡単です。
次に例を示します。
$server = new SoapServer("some.wsdl");
非WSDLモードの場合はこうなります。
$server = new SoapServer(null, array('uri' => "http://test-uri/"));
そこで、私のサンプルの場合は、次のようになります。
$server = new SoapServer("hw.wsdl");
実行する実際の関数を登録し、着信リクエストの処理を開始する必要もあります。
$server->addFunction("getHW");
$server->handle();
コード全体を次に示します。
<?php
function getHW($arr) {
$result = array_sum($arr);
return "<HTML>
<HEAD>
<TITLE>SOAP Server Example</TITLE>
</HEAD
<BODY>
<table>
<tr>
<th>SOAP Server Example - adding array on the server</th>
</tr>
<tr>
<td>$arr[0] + $arr[1] = $result</td>
</tr>
</table>
</BODY>
</HTML>";
}
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer("hw.wsdl");
$server->addFunction("getHW");
$server->handle();
?>
SOAPクライアントコード
クライアントコードはさらに簡単です。「コントラクト」、つまりWSDLファイルの場所を指定し、定義ごとにクライアントに関数を呼び出させて数値配列を渡す必要があります。
<?php
$client = new SoapClient("http://localhost/hw.wsdl");
$response = $client->getHW(array(1,2));
echo $response;
?>
結果は、1 + 2 = 3のようになります。
