2012.09.24
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
こんにちは。 先日Fuelの勉強会に参加したら「 家に帰ってブログを書くまでが勉強会です!」と言われてしまったので、今熱い!(?)FuelPHPのViewとViewModelについて。 フレームワークを利用している方ならMVCモデルに慣れ親しんでいると思うのですが、FuelではMVCにプラスして「ViewModel」というものを利用することができます。
Viewモデルとはなんぞや?ということですが、
ざっくりとこんなイメージです。 VMを利用するメリットですが、見ての通り、Controllerでは一切値を触らないので(VMに投げて、Modelから受け取るだけ)ソースがスッキリとまとまるという利点があります。
// contoroller
function action_index(){
$data = Model_XXXXX::find(XXXXXX);
foreach($data)
// viewにセットするための処理諸々(プルダウンのセットやチェックボックスの値挿入など)
}
}
としていたものが、
// contoroller
function action_index(){
$view = ViewModel::forge($viewName,"view",false);
$this->template->content = View::forge("view",$data);
}
// ViewModel
function view(){
$data = $this->data;
foreach($data)
// viewにセットするための処理諸々(プルダウンのセットやチェックボックスの値挿入など)
}
}
のような感じになります。 これだけだと「分ける必要ないじゃん」って感じですが。。。 複雑な処理になればなるほど、contoroller側の記述がシンプルになっていくイメージです。 まだあまりサンプル例が紹介されていないので、これが正しい使い方なのかはいまいちよくわかっていません…。必ずしもVMを使う必要はないのですが、自分が悩んだ部分だったので健忘録代わりにメモしておきます。
FuelPHP、まだまだ発掘する部分が多くて楽しいフレームワークなので、興味のある方は触ってみるのもいいんじゃないでしょうか。