|
||||||||||
| 1 2 3 次のページ | ||||||||||
| アプリケーションの設計 | ||||||||||
|
アプリケーションはNuSOAPライブラリをベースとした"client.php"と"server.php"の、2つのPHPファイルから構成されることに注意してください。このWebサービスはとても基本的なものですから、WSDLファイルは使用しません。それでは構造を見ていきましょう。 "client.php"では、リモートメソッドであるget_transaction()にパラメートとしてトランザクションID(tid)と顧客ID(cid)を送信して、トランザクションに関する情報を検索するSOAPメッセージを送信します。 すると、リモートアプリケーションがステータスコード(「OK」、「pending」、「failed」)や、トランザクション量や、2つのID(エラーが生じていないことを確認するためのものです)を返します。さらに、"server.php"は、それらの変数にdate()の現在値を追加します。 "server.php"では、最初にリモートメソッドが正しい方法(例えばPOST経由)で呼び出されたかどうか確認します。次に、要求されたデータがすべて提供されたか確認します。つまり、要求されたデータをデータベース(通常MySQLを使用します)から取得し、それを送り返そうとしています。 リスト4では、使用するテーブルのダンプを検索することができます。 リスト4
# "transactions"のダンプ
|
||||||||||
| クライアントアプリケーションを書く | ||||||||||
|
リスト2を見てください。最初にNuSOAPをインクルードし、先の例で行ったようにクライアントオブジェクトを作成します。$wsdlブールパラメータがないことに注意してください。 リスト2(再掲)
<?php
つまり、FALSEと仮定され、WSDLファイルはこのWebサービスでは利用できません。次に、$params連想配列にリモートアプリケーションの入力データを保存します。これが実際のアプリケーションであれば、入力データは、ユーザによって送信されたフォームから、または$_SESSION配列から、あるいはデータベースから取得されることに注意してください。 よりシンプルなコードにするため、データをどこから取得したかは気にせず、ともかく、この配列にデータが格納されていると仮定しましょう大変な作業はNuSOAPが行ってくれます。 たった1行のコードだけで、リクエストを構築し、送信し、検索し、レスポンスを解析します。素晴らしいことだと思いませんか? $resに結果が保持された後に、問題が起きていないか確認します(NuSOAPによって作成された$fault 値を解析します)。また、送信したIDと返されたIDとが一致しているかどうか確認します。最後に、結果を表示します。 これは本当に基本的なプログラムです。できるだけ単純なWebサービスのアプリケーションを構築しています。プログラム初心者のために紹介される「Hello World」と表示するコードのようなものです。実用的なサーバファイルを書く場合には、もう少し複雑になります。 |
||||||||||
|
1 2 3 次のページ |
||||||||||
書籍紹介PHPプログラマーズマガジン PHPプログラマーズマガジンは、PDF形式で読者の方にお届けするPHP言語(PHP: Hypertext Processor)専門誌です。 カナダMTA出版のphp|architect誌を日本語に翻訳し、独自の記事を加えて月刊でお届けしています。 発行:アシアル株式会社 価格:1,029円 |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||


