FuelPHPに独自の設定ファイルを追加する

設定ファイルを新たに追加するには、fuel/app/config/に Arrayを返すPHPファイルを置きます。

以下、ページングの件数の共通設定を追加してみた例です。

fuel/app/config/paging.php
[php]
<?php
return array(
‘per_page’ => 20,
);
[/php]

設定の読み込みは Config::load メソッドを呼び出す必要があります。
[php]
Config::load(‘paging’);
[/php]
全体で利用する設定の場合は fuel/app/bootstrap.php に追加してしまって良い気がします。

設定値の読み込みは Config::get メソッドを使います。
[php]
Config::get(‘paging.per_page’)
[/php]

公式ドキュメント: Config Class

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