本屋に行ったら FuelPHP入門 という本を見つけたので、早速 FuelPHP をダウンロードして動かしてみた。
FuelPHPは先にPHP動作環境が整っているならば、とても簡単に動かすことができるようだ。
ちなみに FuelPHP は CodeIgniter の開発者が携わっているらしい。
CodeIgniter には CakePHP の開発者が携わったらしいが、もしかすると同じ人かもしれない。
で、今回の環境はこんな感じ。
・Windows7
・Eclipse Helios
・XAMPP 1.7.4 (Apache 2.2.17 + PHP 5.3.5 + MySQL 5.5.8)
・FuelPHP 1.5.3
まずは PHPプロジェクトを作成。
そして http://fuelphp.com/ から ZIPファイルをダウンロードして展開。
展開したファイルをプロジェクト内に移動。
今回はFuelPHPがどんなものか探るのが目的なので思いっきり大雑把に。
ディレクトリ階層はこんな感じになった。
プロジェクト/
fuelphp-1.5.3/
docs/ … FuelPHPの開発者向けドキュメント (http://fuelphp.com/docs/ と同じ内容)
fuel/
app/ … PHPでプログラムを書くところ
core/ … FuelPHPのコアプログラムなど
packages/ … パッケージとして提供されるプログラムなど
public/ … ドキュメントルート
では早速XAMMPのApacheを起動してドキュメントルートにアクセスする。
httpd.confを編集していないのでURLはこんな感じ。
http://localhost/プロジェクト名/fuelphp-1.5.3/public/
コントローラーには「APPPATH/classes/controller/welcome.php」が、ビューには「APPPATH/views/welcome/index.php」が使用されているそうだ。
「APPPATH」というのは「fuel/app/」のことで、「APPPATH」は「public/index.php」で定義されている。
「~/public/welcome/」にアクセスしても「~/public/welcome/index/」にアクセスしても同じ結果が得られる。
“welcome”や”index”のところを違う文字列にすると404エラーっぽい画面が表示される。
デフォルトのコントローラーおよびアクションと、コントローラーやアクションが見つからない時の動作は、「APPPATH/config/routes.php」で設定できるようだ。
その「routes.php」を見てみると少々興味深い記述がある。
<?php return array( '_root_' => 'welcome/index', // The default route '_404_' => 'welcome/404', // The main 404 route 'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), );
どうやら welcomeコントローラーのhelloアクションに /hello というURLを与えて、なおかつURLの一部を名前付きのパラメータとしているようだ。
とりあえず「~/public/hello/SoKaiApp」にアクセスしてみる。
パラメータを省略したらどうなるのか、「~/public/hello/」にアクセスしてみる。
「SoKaiApp」だったところが「World」となった。
パラメータのデフォルト値の設定は「APPPATH/classes/view/welcome/hello.php」で行われているようだ。
というか、ビューにクラスがあるのか。省略はできるようだが。
コントローラーとビューのすり合わせを行う場合はビュークラスを使え、ということかな。
名称は「View」となっているが、抽象クラスが「ViewModel」という名前だし、MVCでの位置づけはモデルで間違いないだろう。
このViewModelクラスはCakePHPなどの「コントローラーが太る」という問題を解決するために考えられたものと思われる。
今回、FuelPHPをそのまま動かしてわかったこと。
- ZIPファイルを展開したら「fuel」と「public」だけあれば良い。
- クラス名が嫌な感じ。(Controller_Welcome とか View_Welcome_Hello とか。)
- Viewクラスが作れるので、コントローラが太ってしまう心配が減る。
- URLのことは「APPPATH/config/routes.php」で設定する。
- ルートのアクションは「APPPATH/config/routes.php」で指定する。
- 404エラー時のアクションは「APPPATH/config/routes.php」で指定する。
コメント