[FuelPHP] FuelPHPを動かしてみた

FuelPHP

本屋に行ったら 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のダウンロード

展開したファイルをプロジェクト内に移動。
今回は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/

FuelPHPのルート画面

FuelPHPのルート画面

コントローラーには「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/ にアクセスしてみると、Hello, SoKaiApp!と表示された

public/hello/SoKaiApp/ にアクセスしてみると、Hello, SoKaiApp!と表示された

パラメータを省略したらどうなるのか、「~/public/hello/」にアクセスしてみる。

public/hello/ にアクセスしてみると、Hello, World!と表示された

public/hello/ にアクセスしてみると、Hello, World!と表示された

「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」で指定する。

コメント