PHP on sMash -sMashとPHPで作るRESTful Webアプリケーション- 第11回は、前回に引き続き、イベント・ハンドラーです。今回も、前回利用した環境を利用しますので、こちらを参考に開発環境構築を行い、第10回の手順を確認して下さい。

それでは、始めていきましょう。

●概要

イベント・ハンドラーでは、カスタム・イベントの他に、暗黙的に定義されているイベント、onGET, onPOST, onPUT, onDELETEを受け取ることができます。これらのイベントは名前を見て分かる通り、GET、POST、PUT、DELETEのそれぞれのHTTPメソッドに関連付けられています。これらのイベントを利用する際には、カスタム・イベントで設定したzero.configへの定義作業は必要なく、イベント・ハンドラーを配置するだけでOKです。

PHPの暗黙的なイベントについては、Developer’s Guideに記載がありませんが、今後追加される予定です(Bug 7922を参照下さい)。

JavaGroovyのハンドラーについては、暗黙的なイベント定義について記載があるので、そちらを参考にして下さい。

●イベント・ハンドラーの作成

では、早速イベント・ハンドラーを作成しましょう。

  1. eclipseを起動し、前回作成したEventHandlerプロジェクトのpublicフォルダを右クリックし、New > PHP Fileを選択します。
  2. ファイル名をhandler.phpとし、Finishをクリックします。
  3. 以下のコードをコピー&ペーストします。

<?php
class handler {
   function onGET() {
      echo "onGET";
   }
   function onPOST() {
      echo "onPOST";
   }
   function onPUT() {
      echo "onPUT";
   }
   function onDELETE() {
      echo "onDELETE";
   }
}
?>

これで、イベント・ハンドラーが完成しました。このように、イベント・ハンドラーはファイル名と同じクラスを作成し、その中に各種関数を実装していきます。

●テスト

それでは、イベント・ハンドラーがきちんと機能するか、テストしてみましょう。テストにはFirefoxのプラグインであるPOSTERを利用します。POSTERを導入していない方は、こちらを参考に導入を行ってください。

  1. プロジェクトを右クリックし、Run As > WebSphere sMash Applicationを選択し、アプリケーションを起動します。
  2. Firefoxを起動し、Shift + Alt + PでPOSTERウィンドウを開きます。
  3. まず、GETを送信します。以下の通り入力し、Goボタンをクリックします。
     URL : http://localhost:8080/handler.php
     Actions : GET
    onGETという文字が返ってくれば成功です。
  4. 次に、POSTを送信します。以下の通り入力し、Goボタンをクリックします。
     URL : http://localhost:8080/handler.php
     Actions : POST
     Content to Send : test
    onPOSTという文字が返ってくれば成功です。
  5. 次に、PUTを送信します。以下の通り入力し、Goボタンをクリックします。
     URL : http://localhost:8080/handler.php
     Actions : PUT
     Content to Send : test
    onPUTという文字が返ってくれば成功です。
  6. 最後に、DELETEを送信します。以下の通り入力し、Goボタンをクリックします。
     URL : http://localhost:8080/handler.php
     Actions : DELETE
    onDELETEという文字が返ってくれば成功です。

これで、前回と合わせてイベント・ハンドラーの実装方法については終了です。

Leave a Reply

Spam Protection by WP-SpamFree Plugin