読者です 読者をやめる 読者になる 読者になる

FuelPHPのインストールから開発までの流れをおさらい

なんだかんだで毎回調べているような気がするので、
FuelPHPのインストールから諸々の下準備の流れをメモっておきます。

以下を想定しています。

  • DocumentRoot : /var/www/html
  • ProjectRoot : /var/www/sample
  • FuelPHP Version : 1.3

1. FuelPHPのインストール

まずはFuelPHPのインストールから。

ダウンロードして使用する場合

伸張したディレクトリがそのままプロジェクトのディレクトリに。

$ cd /var/www
$ wget https://github.com/downloads/fuel/fuel/fuelphp-1.3.zip
$ unzip fuelphp-1.3.zip -d sample
$ cd sample
    (ver1.6以上の場合、sampleディレクトリへ移動後『php composer.phar update』を実行する必要があります)
$ php oil refine install

※ FuelPHP1.4の場合、『3. config設定』を先に設定しないと、エラーになります。
※ zip版のpublic配下の.htaccessパーミッションが『670』なのは、自分の環境の問題?

コマンドラインでインストールを行う場合

oilコマンドでプロジェクトを作成。

$ curl get.fuelphp.com/oil | sh
$ which oil
$ cd /var/www
$ oil create sample

2. ドキュメントルート設定

publicディレクトリをDocumentRootとして使用する為、移動。

$ mv /var/www/sample/public /var/www/html
$ vi /var/www/html/index.php

publicディレクトリをプロジェクトディレクトリから移動した為、以下のパスを修正。

<?php
...
define('APPPATH', realpath(__DIR__.'/../sample/fuel/app/').DIRECTORY_SEPARATOR);
define('PKGPATH', realpath(__DIR__.'/../sample/fuel/packages/').DIRECTORY_SEPARATOR);
define('COREPATH', realpath(__DIR__.'/../sample/fuel/core/').DIRECTORY_SEPARATOR);

3. config設定

$ vi /var/www/sample/fuel/app/config/config.php

修正箇所のみ抜粋

<?php
return array(
...
    'index_file' => false,
    'language' => 'ja',
    'locale' => 'ja_JP.UTF-8',
    'default_timezone' => 'Asia/Tokyo',
...
    'always_load' => array(
        'packages' => array(
            'orm',
        ),
...
);

セッションがデフォルトでcookieになっている為、fileに変更。

$ vi /var/www/sample/fuel/app/config/session.php

※ファイルは新規作成

<?php
return array(
    'driver' => 'file'
);
※ 2013/01/29追記

localeには”ja_JP.UTF-8"を指定しないと酷い目に合う場合があるようです。

※ 2013/03/05追記

Ver1.5では『security.output_filter』がデフォルトで空になっているようです。

Ver1.5 - Ver1.5.2を使用している場合、app/config/config.phpに以下を追加した方がいいかもしれません。

<?php
...
    'security' => array(
        'uri_filter' => array('htmlentities'),
        'output_filter' => array('Security::htmlentities'),
        'whitelisted_classes' => array(
            'Fuel\\Core\\Response',
            'Fuel\\Core\\View',
            'Fuel\\Core\\ViewModel',
            'Closure'
        )
...

参考) FuelPHP 1.5.3 hotfix がリリースされました - A Day in Serenity @ kenjis

4. DB設定

DB接続情報を修正。
(development/db.php , production/db.php をそれぞれ修正)

$ vi /var/www/sample/fuel/app/config/development/db.php

適宜変更

<?php

return array(
    'default' => array(
        'connection' => array(
            'dsn' => 'mysql:host=localhost;dbname=fuel_dev',
            'username'   => 'fuel_app',
            'password'   => 'super_secret_password',
        ),
    ),
);

5. モデル作成

必要なモデルの作成マイグレーションの実行。

$ cd /var/www/sample
$ php oil generate model hoge name:varchar[255] sex:int del_flg:bool
$ php oil refine migrate

※ php oil generate model {テーブル名} {カラム1名}:{カラム1型} {カラム2名}:{カラム2型}...

※テーブルの管理画面が必要であれば『php oil generate model』を『php oil generate admin』に変更しSimpleAuthを設定

6. コントローラ作成

$ cd /var/www/sample
$ php oil generate controller example index add

※ php oil generate controller {コントローラ名} {アクション1} {アクション2}...

※oil generate controllerで生成されるのはController_Template

7. TOPページの設定

$ cd /var/www/sample/fuel/app/config
$ vi routes.php

TOPページとなるコントローラを設定。

<?php
return array(
    '_root_' => 'top/index',
    ...
);

8. いざ開発!

こんな感じだと思うんですが、間違い/漏れ等あればご指摘下さい。

FuelPHP入門

FuelPHP入門