2010-09-03
■[PHP] Sinatra風PHP用フレームワークLimonadeによるWebアプリケーション作成
Sinatra 風の PHP 用 Web フレームワーク Limonade を使って簡単な Web アプリケーションを作成してみた。
他にも同様のフレームワークとして Fitzgerald があるが、今回は実装コード量が少なくなりそうな Limonade を使ってみることにした。
使用した環境は以下の通り。今回は XAMPP 上で PHP を動作させた。(PHP が動作する環境であれば他でも可)
- XAMPP Lite 1.7.3
- Limonade 0.4.6
サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20100903/
事前準備
まず、XAMPP 環境を用意し、htdocs ディレクトリ内に任意のディレクトリ(今回は sample)を作成しておく。
Limonade の Github からソースコードを取得し、以下を実施。
- lib ディレクトリを htdocs/sample ディレクトリに配置
- examples/urlrewrite/htaccess.conf(Apache用のURLリライト設定)を htdocs/sample ディレクトリに .htaccess として配置
上記作業で XAMPP の htdocs 内の構成は以下のようになる。
なお、PHP を実行させる環境によっては自前で URL リライトの設定を行う必要がある点に注意。
Webアプリケーション開発
htdocs/samle に index.php を作成し、URLと処理のマッピングを実装する。
Limonade のサンプルでは、関数定義とURLのマッピングが分けて記載されているが(dispatch には関数名を文字列として渡している)、PHP 5.3 ではラムダ関数を使って、より Sinatra に近い記述ができるので、今回はラムダ関数を使って実装してみた。
run メソッドを最後に呼び出す点に注意。
htdocs/sample/index.php
<?php require_once dirname(__FILE__) . '/lib/limonade.php'; //ルート / へのアクセス時の処理 dispatch('/', function() { return "hello"; }); // /name/value へのアクセス時の処理 dispatch('/:name/:value', function() { $name = params("name"); $value = params("value"); return "sample page name: $name, value: $value"; }); run(); ?>
動作確認
XAMPP が起動している状態で、http://localhost/sample/ や http://localhost/sample/aaa/100(aaa や 100 の部分は何でもよい)にアクセスすると、正常に動作していることが確認できる。
- 25 http://pipes.yahoo.com/pipes/pipe.info?_id=45d5a8c4e92dd6d0ea2937e5cbb455bf
- 9 http://www.ustream.tv/socialstream/5431716
- 6 http://twitter.com/
- 5 http://www.google.co.jp/search?q=iui&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 5 http://www.google.co.jp/search?q=scalatra&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&hl=ja&client=firefox-a
- 4 http://twitter.com/maiha
- 4 http://www.google.co.jp/search?hl=ja&lr=lang_ja&tbs=lr:lang_1ja&q=Apache+ODE+Java&aq=f&aqi=&aql=&oq=&gs_rfai=
- 3 http://reader.livedoor.com/reader/
- 3 http://wiki.hudson-ci.org/display/HUDSON/Plugin+tutorial
- 2 http://readitlaterlist.com/unread