※FuelPHP 1.7まで存在していたViewModelクラスは、FuelPHP 1.8からはPresentersクラスに変更された。
ViewModelとは、ビューに必要なデータの取得をコントローラから切り離したい時に利用するクラスである。コントローラにはURLリクエストに対するロジックを記述し、表示用データの作成といったロジックはコントローラから分離しようというものである。
ViewModelを利用するには、ViewModelを拡張するクラスとして定義し、ファイルには APPPATH/classes/view/ 下に配置する。
ビューモデルとビューは1対1で対応する。たとえば、APPPATH/views/index.php のビューに対応するビューモデルは APPPATH/classes/view/index.php にファイルを配置し、クラス名は「View_Index」とする。APPPATH/views/foo/bar.php のビューに対応するビューモデルのクラス名は View_Foo_Bar とする。
class View_Exsample extends ViewModel {
public function view() {
$this->title = "ViewModel example";
}
}
コントローラでは、ビューモデルのforge
メソッドを呼び出す。
public function action_index() {
return Response::forge(View_Exsample::forge('exsample'));
}