前回、EC-CUBEの2.4系のページクラスの構造について見てみました。
今回は最新版である2.11系について同じように見ていきたいと思います。
前回同様とりあげるのはトップページ(LC_Page_Index)にします。
[php]
<pre>class LC_Page_Index extends LC_Page_Ex {
// }}}
// {{{ functions
/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
parent::process();
$this->action();
$this->sendResponse();
}
/**
* Page のアクション.
*
* @return void
*/
function action() {
$this->tpl_title = ”;
$objCustomer = new SC_Customer_Ex();
$this->isLogin = $objCustomer->isLoginSuccess(true);
}
/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}</pre>
[/php]
2.4系と比べるとずいぶんスッキリしていますね。
大きな理由としてはSmartyに関係するような部分も含めた画面表示回りの処理が2.4系ではページクラスの中に一部組み込まれていましたが、これが完全に分離されているというのが大きいと思います。これはカスタマイズする際には結構大きな利点です。
今までは新しく作った変数をSmartyにアサインさせようとすると、process関数をまるまるオーバーライドする必要がありました。しかし、2.11系ではprocess関数内にあるaction関数ないにページ固有の処理が集約されるようになっていますので、このaction関数のみ変更すればいいようになっています。
あと、大きな変更点としてはmobile用の関数が分かれていたのですが、これがなくなり1つに統一されているということでしょうか。2.11系は可読性もよく個人的にもかなり好印象な設計になっていると思います。