PHP on sMash – 第11回 イベント・ハンドラー (暗黙的なイベント)
Posted by Kenta Takahashi on 2月 4th, 2009. Other posts by Kenta Takahashi
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を参照下さい)。
JavaやGroovyのハンドラーについては、暗黙的なイベント定義について記載があるので、そちらを参考にして下さい。
●イベント・ハンドラーの作成
では、早速イベント・ハンドラーを作成しましょう。
- eclipseを起動し、前回作成したEventHandlerプロジェクトのpublicフォルダを右クリックし、New > PHP Fileを選択します。
- ファイル名をhandler.phpとし、Finishをクリックします。
- 以下のコードをコピー&ペーストします。
<?php
class handler {
function onGET() {
echo "onGET";
}
function onPOST() {
echo "onPOST";
}
function onPUT() {
echo "onPUT";
}
function onDELETE() {
echo "onDELETE";
}
}
?>
これで、イベント・ハンドラーが完成しました。このように、イベント・ハンドラーはファイル名と同じクラスを作成し、その中に各種関数を実装していきます。
●テスト
それでは、イベント・ハンドラーがきちんと機能するか、テストしてみましょう。テストにはFirefoxのプラグインであるPOSTERを利用します。POSTERを導入していない方は、こちらを参考に導入を行ってください。
- プロジェクトを右クリックし、Run As > WebSphere sMash Applicationを選択し、アプリケーションを起動します。
- Firefoxを起動し、Shift + Alt + PでPOSTERウィンドウを開きます。
- まず、GETを送信します。以下の通り入力し、Goボタンをクリックします。
URL : http://localhost:8080/handler.php
Actions : GET
onGETという文字が返ってくれば成功です。 - 次に、POSTを送信します。以下の通り入力し、Goボタンをクリックします。
URL : http://localhost:8080/handler.php
Actions : POST
Content to Send : test
onPOSTという文字が返ってくれば成功です。 - 次に、PUTを送信します。以下の通り入力し、Goボタンをクリックします。
URL : http://localhost:8080/handler.php
Actions : PUT
Content to Send : test
onPUTという文字が返ってくれば成功です。 - 最後に、DELETEを送信します。以下の通り入力し、Goボタンをクリックします。
URL : http://localhost:8080/handler.php
Actions : DELETE
onDELETEという文字が返ってくれば成功です。
これで、前回と合わせてイベント・ハンドラーの実装方法については終了です。

Leave a Reply