oilコマンドでプロジェクトディレクトリを作成する。
oil create fuelphpもしくは、gitでレポジトリからcloneする。
git clone --recursive git://github.com/fuel/fuel.git fuelphpFuelPHP1.7.2からは依存関係はcomposerで管理できるようになっている。依存関係にあるパッケージの最低限の安定性がdevになっているので、stableにして再度、依存関係を更新する。
# composer.json ... "minimum-stability" : "stable",composerで依存関係を更新する。
php composer.phar self-update php composer.phar update
fuel/app/config/config.phpを編集する。
# fuel/app/config/config.php ... 'language' => 'ja', // 言語の設定 ... 'locale' => 'ja_JP.UTF-8', // ロケールの設定(シェルでlocale -aコマンドで使用可能なロケールを調べておく) ... 'default_timezone' => 'Asia/Tokyo', // タイムゾーンの設定 ... 'log_threshold' => Fuel::L_ALL, // ログ情報をすべて記録する
ユーザーが自身で開発して作成するファイルは原則この下に置く。
app
├── bootstrap.php ・・・ブートストラップファイル
├── cache ・・・Cacheクラスの作成するキャッシュが保存される
├── classes
│ ├── controller ・・・コントローラークラスファイル置き場
│ ├── model ・・・モデルクラスファイルを配置
│ └── presenter ・・・プレゼンタ?を配置
│ └── welcome
├── config ・・・設定ファイルを配置
│ ├── config.php
│ ├── db.php
│ ├── routes.php
│ ├── development
│ ├── production
│ ├── staging
│ └── test
├── lang ・・・言語ファイルを配置
├── logs ・・・ログフォルダ
├── migrations ・・・マイグレーションファイル(データベーステーブルを定義)を配置
├── modules ・・・モジュールを配置
├── tasks ・・・タスク?を配置
├── tests ・・・テストを配置
│ ├── controller
│ ├── model
│ └── view
├── themes ・・・
├── tmp ・・・一時フォルダ
├── vendor ・・・サードパーティのライブラリを配置(composer使用の場合はfuel/vendorに配置される)
└── views ・・・ビューを配置
└── welcome
# 編集中 docs ・・・FuelPHPの公式ドキュメント fuel ・・・FuelPHPのプログラムやファイル郡 ├── app │ ├── cache │ ├── classes │ │   ├── controller ・・・コントローラークラスのファイル置き場 │   │   ├── model ・・・モデルクラスのファイル置き場 │   │   └── presenter │   │   └── welcome │   ├── config ・・・各種設定ファイル │   │   ├── config.php ・・・アプリケーション全体に関する設定 │   │   ├── db.php ・・・データベースに関する設定 │   │   ├── routes.php ・・・ │   │   ├── development │   │   ├── production │   │   ├── staging │   │   └── test │   ├── lang │   │   └── en │   ├── logs │   ├── migrations │   ├── modules │   ├── tasks │   ├── tests │   │   ├── controller │   │   ├── model │   │   └── view │   ├── themes │   ├── tmp │   ├── vendor │   └── views ・・・ビューファイル置き場 │   └── welcome
- 「fuel/app/classes/controller」ディレクトリ以下にクラスファイルを配置する。
- ファイル名はコントローラ名とする。
- クラス名には「Controller_」を頭につける。
- クラス名の単語は最初の文字は大文字でその他は小文字にする。
- クラス名の中の「 _ 」はフォルダ区切りになる。
- Controller クラスを継承する。
ルート名/コントローラ名/メソッド名[/パラメータ1[/パラメータ2[/...]]]サブフォルダを利用して、「fuel/app/classes/contorolle/サブフォルダ/コントローラ」のように配置した場合には、
ルート名/サブフォルダ名/コントローラ名/メソッド名[/パラメータ1[/パラメータ2[/...]]]
- ブラウザから実行されるメソッド名(アクションメソッド)には「action_」を頭につける。
- 特殊メソッド
| action_index() | URLでメソッド名が省略された時に実行される。 |
|---|---|
| before() | アクションメソッドの実行前に実行される。コントローラ内で共通する前処理などを記述する。 |
| after($response) | アクションメソッドの実行後に実行される。引数にはアクションメソッドの返り値をとる。 |
| router($method, $params) | 内部ルーティングを上書きする。すなわち、このメソッドが定義されているとURLに別のメソッド名が指定されていても、(before()メソッドの次に)router()メソッドが実行される。 |
- Controller_Restクラスを継承する。
- 実行されるメソッドにはHTTPメソッドの接頭辞をつける。利用可能なHTTPメソッドは、「get_」「post_」「put_」「delete_」。すなわち「action_メソッド名」は使えない。
- URLのメソッド名に出力されるフォーマットの拡張子をつける。
- 「fuel/app/views」ディレクトリ以下に配置する。
- ファイル名はすべて小文字(FuelPHP共通の規則)。
- viewディレクトリ下にコントローラ名のディレクトリを作りその下に関連するビューファイルを配置することが多い。
コントローラクラス内で、次のように呼び出してビューオブジェクトを生成する。
View::forge($file[, $data]) $file・・・ビューファイル名(拡張子を除く) $data・・・ビューに渡す連想配列またはオブジェクト(例)ビューファイル
# fuel/app/views/home/index.php
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
Welcome, <?php echo $username; ?>.
</body>
</html>
(例1)コントローラからの呼び出しとビューへの当てはめ。
class Controller_Home extends Controller
{
public function action_index()
{
$data = array();
$data['username'] = 'Joe14';
$data['title'] = 'Home';
// 連想配列をforgeメソッドに渡すことで、ビューに当てはめる。
return View::forge('home/index', $data);
}
}
(例2)
class Controller_Home extends Controller
{
public function action_index()
{
// ビューオブジェクトを作成(この段階ではビューへの当てはめは行われない)
$view = View::forge('home/index');
// ビューのプロパティの形で変数を当てはめることもできる。
$view->username = 'Joe14';
$view->title = 'Home';
// set()メソッドを使う方法もある。
$view->set('username', 'Joe14');
$view->set('title', 'Home');
return $view;
}
}

最新コメント