FuelPHP ViewModelクラス

※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'));
}