ビューコントローラー

はじめに

チュートリアル2で記載されいる内容とほとんど同じとなりますが、 この項目では、アクションコントローラーについて、記載します。

クラスリファレンス/ActionControllerも参考にして下さい。

コマンドラインによる作成

初期化された、ビューコントローラーは、下記のコマンドで作成することが出来ます。

envi init-view <app_key> <module_name> <action_name> [success,confirm,error,default,commit]

ルーティング

ビューコントローラーは、actionコントローラの返り値によって、実行されるファイルが変わります。

返り値 実行ファイル
Envi::DEFAULT_ACCESS {action_name}_default.php
Envi::SUCCESS, true {action_name}_success.php
Envi::ERROR {action_name}_error.php
Envi::CONFIRM {action_name}_confirm.php
Envi::COMMIT {action_name}_commit.php
Envi::NOME, true, void ビューはスキップされます

もしくは、{action_name}Views.class.phpに{action_name}Viewsクラスを定義する事で、Viewの処理をまとめて記述することが出来ます。

返り値 実行ファイル
Envi::DEFAULT_ACCESS executeDefault
Envi::SUCCESS, true executeSuccess
Envi::ERROR executeError
Envi::CONFIRM executeConfirm
Envi::COMMIT executeCommit
Envi::NOME, true, void ビューはスキップされます

また、アクションコントローラーと同じように、views.class.phpにまとめて記述することが出来ます。その場合は、

execute{action_name(パスカルケース)}Successと言うようなメソッド定義になります。 たとえば、ACTION名がindexの場合は、

executeIndexSuccess

と言うような形になります。

警告: ActionChainの機能や、 EnviController::forwardを使用して、Actionを再利用する場合は、個別ファイルでの記述は使用せず、views.class.phpにまとめて処理を記述するか、{action_name}Views.class.phpを用意し、そこに、処理をまとめて記述する必要があります。 他モジュールの同名アクションを実行する場合は、views.class.phpにまとめて処理を記述する必要があります。 そうで無いなら、EnviMVCはアクションコントローラーからの返り値によって、同名クラスの作成を試みます。

それぞれのメソッドの役割

ビューコントローラーのスケルトンは、たとえば下記のようになっています。

最も単純な例


<?php

class indexView extends helloViews
{

    public function 
execute()
    {
        
$parameter Request::getAttributeAll();
        
$this->display($parameter);
    }

}
メソッド名 説明
initialize 初期化処理。 executeの前に実行されます。 falseもしくは、それに相当するものがreturnされた場合、処理を中断します。
execute viewでの処理を記述します。|
setRenderer $this->renderer を定義します。setRendererメソッドを定義しない場合は、{app_key}.ymlで定義したデフォルトのrendererが使用されます。
shutdown 終了処理。execute実行後に処理されます。