SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

PHP 5でSOAPおよびRPC Webサービスを開発する

PHPでWebサービスを作成および利用する2つの標準的な方法

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のようになります。

次のページ
XML-RPC PHP Webサービスの作成

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Vlad Kofman(Vlad Kofman)

ウォールストリート有数の企業でエンタープライズレベルのプロジェクトに携わる。また、米国政府の防衛関連の仕事も手がけている。特に関心を寄せているのは、オブジェクト指向プログラミング方法論、UI、デザインパターン。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4168 2009/08/04 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー