プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.6、ViewModelを理解する
FuelPHPにはViewModelなる「view用のmodelだぜー」な奴がいるらしい。
そいつを見ていこうってのが今回のテーマです。

えっとまず基本的な使い方は……

1.ファイルは「fuel/app/classes/view/」に置く。
2.「ViewModel」を継承したクラスにする。
3.(取りあえずは)「view()」メソッドを用意する。
4.対応させるview(fuel/app/view/配下のファイル)と同じ階層で同じファイル名にする。

ってところですかね。

試しに作ったのはこんな感じφ(--)

■fuel/app/classes/view/vhoge.php
<?php
class View_vhoge extends ViewModel
{
    public function view()
    {
        $this->msg = "あああ";
    }
}

■fuel/app/view/vhoge.php
<html>
<head>
    <title></title>
</head>
<body>
    vhoge<br>
    <?php echo $msg ?>
</body>
</html>

■fuel/app/classes/controller/hogev.php
<?php
class Controller_Hogev extends Controller
{
    public function action_index()
    {
        return ViewModel::forge('vhoge');
    }
}

結果φ(--)

vhoge
あああ

ViewModelで$msgに値を設定してその$msgをビューで表示、
そんなViewModelをコントローラから呼び出しています。

ViewModelで別のメソッドを定義して使いたい場合は
呼出側で第二引数に呼び出しメソッド名を指定すれば良いらしいφ(--)

■fuel/app/classes/view/vhoge.php
<?php
class View_vhoge extends ViewModel
{
    public function view()
    {
        $this->msg = "あああ";
    }
    public function view2()
    {
        $this->msg = "いいい";
    }

}

■fuel/app/classes/controller/hogev.php
<?php
class Controller_Hogev extends Controller
{
    public function action_index()
    {
        return ViewModel::forge('vhoge', 'view2');
    }
}

結果φ(--)

vhoge
いいい

コントローラからViewModelに値を渡したい場合は、
「set()」メソッドもしくは「set_global()」メソッドを使えば良いらしいφ(--)

■fuel/app/classes/view/vhoge.php
<?php
class View_vhoge extends ViewModel
{
    public function view()
    {
        $this->msg = "あああ";
    }
    public function view2()
    {
        $this->msg = "いいい";
    }
    public function view3()
    {
        $this->msg = $this->data['msg1'] . $this->data['msg2'];
    }
}

■fuel/app/classes/controller/hogev.php
<?php
class Controller_Hogev extends Controller
{
    public function action_index()
    {
        return ViewModel::forge('vhoge', 'view3')->set('data', array(
            'msg1' => "ううう",
            'msg2' => "えええ",
        ))
;
    }
}

結果φ(--)

vhoge
うううえええ

ふーん、特に難しいことは無さそうですね。
使いどころもいまいち思い浮かばんけど(--ゞ

取りあえずViewModelの理解、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事