Hello FuelPHP


FuelPHPは、PHPのメジャーなMVCフレームワークの一つです。

規約よりも設定というRuby on Rails的なMVCフレームワークとは逆行するコンセプトですが、非常に柔軟にアプリケーションを実装できとても使い勝手の良いフレームワークです。

また機能についても、データベースアクセスにクエリービルダー形式とORMのサポートがあり、ORMは関連も含めて複合キーも使えたりと、他のフレームワークで意外と困ることを難なくこなしてくれます。

ただ、FuelPHPは、MySQLでしかまともに動きません。Postgresqlの場合は、1.7でもシーケンスの扱いなどそれなりに修正が必要となります。
また、PHP系のフレームワークだとどれもそうですがユニットテストのサポートがイマイチなので、その辺りは割り切りがある程度必要そうではあります。

チュートリアル
Fuel Crash Course

セットアップ

公式ドキュメントのインストール方法に掲載されている「コマンドラインからインストール」の手順に従ってプロジェクトを作成します。
[bash]
$ cd /var/www
$ curl get.fuelphp.com/oil | sh
$ oil create blog
[/bash]
oil は、CakePHPの bake、 Railsの rails コマンドに当たります。

Apacheに設定を追加

[text]
<VirtualHost *:80>
ServerName www.blog.net
DocumentRoot /var/www/blog/public
</VirtualHost>
[/text]
/etc/hosts にwww.blog.netとそのIPアドレスを追加します。
[text]
127.0.0.1 www.blog.net
[/text]
http://www.blog.net にアクセスして以下の画面が表示されればセットアップは成功です。
fuelphp_welcome

Scaffold

データベースを作成

[bash]
$ mysql -uroot -p
mysql> CREATE DATABASE blog DEFAULT CHARACTER SET utf8;
[/bash]
fuel/app/config/development/db.phpに作成したデータベースを設定
[php]
return array(
‘default’ => array(
‘connection’ => array(
‘dsn’ => ‘mysql:host=localhost;dbname=blog’,
‘username’ => ‘root’,
‘password’ => ‘root’,
),
),
);
[/php]
参照: PDO_MYSQL DSN

ORMパッケージを有効にする

fuel/app/config/config.phpの257行目からのAlways Load セクションの該当箇所をコメントアウトして設定します。
[php]

/**************************************************************************/
/* Always Load */
/**************************************************************************/
‘always_load’ => array(

‘packages’ => array(
‘orm’,
),

),

[/php]
これで、scafoldを実行する準備が整いました。
scaffoldを実行して、生成されるマイグレーションを実行してデータベースに適用します。
[bash]
$ php oil generate scaffold posts name:string message:text

$ php oil refine migrate
Performed migrations for app:default:
001_create_posts
[/bash]
http://www.blog.net/posts にアクセスすると以下のようなPostの一覧画面が表示されます。
fuel_php_posts

,