とりあえず、開発スピードを優先させるためにフルスクラッチで作ってたジオポですけど、これから、国際化対応させたり、DB使う場面が出てくると思うので、PHPのフレームワーク CodeIgniterに変換した。
フルスクラッチは、コントローラーからビューだけをinclude()する方法で作っていたので、置き換えもスムース。そして、スピーディー。
- CodeIgniterをダウンロード、展開
- .htaccess 書き換え
- config.php の設定
- $config[‘base_url’] = “http://” . $_SERVER[“HTTP_HOST”]; としてローカル環境・本番環境でも切り替え必要なし。
- //$config[‘index_page’] = “index.php”; コメントアウト
- autoload.php の設定
- ライブラリのuser_agentとコンフィグに独自config
- コントローラーをクラス化してやり、少しの書き換え
- 同時に独自configファイルを作ってやる
- サーバ名を見て、ローカルだったらデバッグフラグ立てる
- Google Maps APIがローカルだと使えない(localhostならいけるけど、プロジェクトごとに projectName.localhostとしてhostsの変更してるので…)
- ビューを配置
- user_agents.php の書き換え
- 日本向けの携帯設定と、iPhone判別を追加
こんだけです。多分、1時間もかかってないんじゃないかな?
気づいたこと→routes.phpが素敵
routes.php でクラス、メソッドの呼び出しがマッピングできるんだけど、正規表現が使えるからとっても便利。
今までは、.htaccessでmod_rewriteのために正規表現の条件処理を加えて、パラメータをクエリとして渡してやって、そのクエリをバリデートと分岐させるためにPHPの内部でも正規表現で条件分けしてた。
CodeIgniterだとそんなのいらない、
$route['([0-9a-zA-Z_-]{1,10})'] = "geopo/mapGeopo/$1";
これだけで完了。記述方法もとってもわかりやすい(たしか、Cakeだともっと複雑だった気が)。
そんなこんなで、これから国際化に向けてがんばろうっと。
ブログで取り上げてもらった
ヅラずれなるままに(2009-02-26) – ジオポを試してみた
書いていただき、ありがとうございます。
地図からの選択はわかりにくいかな?あのマーカーがドロップしたときの動きが好きで、あんな仕様にしたんだけど、後で変えて試してみっか。