TOP書籍連動> PHP NuSOAPライブラリ
SOAPの紹介
SOAPの紹介

第3回:アプリケーションの書き方

著者:Alessandro Sfondrini   2006/3/15
前のページ  1  2
PHP NuSOAPライブラリ

   NuSOAPはLGPLライセンスの下、http://dietrich.ganx4.com/nusoap/で無料で公開されている、開発者がSOAP Webサービスを運用するため作られたクラスです。require()を用いてnusoap.phpをスクリプトに読み込ませるだけで、使用できます。

   このライブラリを利用して、クライアントアプリケーションを簡単に作成することができます。SOAPメッセージを構築しリモートAPIに送信する代わりに、必要な変数をクラスに渡し、HTTP、または一般的なTCP/IPプロトコル上にSOAPでエンコーディングされた変数を送信するよう指定します。例を見てみましょう。

<?php
require("nusoap.php");
$params = array("id" => 42);
$client = new soapclient($remote, $wsdl);
$resp = $client->call('getbyid',$params);
?>

   はじめにNuSOAP を読み込み、連想配列$paramsの中にRPCのために使用するパラメータを格納します。次に、2つの引数($remoteと$wsdl)を渡すオブジェクトを作成します。

   SOAPサーバは$remote(文字列)、および$wsdl(サーバがWSDLドキュメントを使用するかどうかをあらわすブール値)を処理します。このようにWSDL(Web Services Description Language)ドキュメントは、メソッドやプロパティなどWebサービスについての情報を含んでいます。


WSDLを利用する場合

   特に複雑なWebサービスの場合、WSDLが利用されます。一度オブジェクトを作成したら、後はRPCを実行すればよいだけです。$paramsに格納された、リモートメソッド名とパラメータを指定して、call()メソッド呼び出します。

   NuSOAPは自動的に結果を取得し、連想配列$resultに保持します。WSDLベースのサーバで運用する場合($wsdl はTRUE に設定しておきます)、一度作成すれば、同様に、$client はリモートメソッドを呼び出すことができます。

<?php
$proxy = $client->getproxy();
$results = $proxy->getbyid($params);
?>

   これによりコードがシンプルになります。最初にプロキシクライアント($proxy)を作成します。すると、NuSOAPのcall()メソッドを使用しなくとも、プロキシを使用するWSDLドキュメントに記述されているどのようなリモートメソッドでも呼び出すことができます。NuSOAPで、基本的なリモートインターフェースを設定する方法を見てみましょう。

<?php
$server = new soap_server;
$server->register('mymethod');
/* mymethod関数を宣言します*/

$server->service($HTTP_RAW_POST_DATA);
?>

   ライブラリを呼び込み、サーバオブジェクトを作成して利用可能にしたいメソッドを登録します。その後、同じ名前で関数を宣言し、オペレーションを実行し、結果を返します。最後に、受信したHTTP POSTデータをすべてサーバオブジェクトへ渡し、自動的に出力が生成されます。

前のページ  1  2


Alessandro Sfondrini
著者プロフィール
Alessandro Sfondrini
イタリアのコモ出身の若いプログラマであり、PHPとC言語に関連したWebサービスに興味をもっています。また、近日出版される『php|a Nanobook"Practical Web Services"』の著者です。


INDEX
第3回:アプリケーションの書き方
  アプリケーションの書き方
PHP NuSOAPライブラリ