Zend_Layout
0pt
使い方
Zend_Controllerをdispatchする前に
<?php Zend_Layout::startMVC(array('layoutPath' => '/path/to/script)); ?>
これだけでレイアウト適用できる。
どうやら、startMVCでZend_Controllerのプラグインなどを自動に登録してるみたいだ。
アクション内でレイアウト変更したい場合
アクションヘルパー(Zend_Layout_Controller_Action_Helper_Layout)からZend_Layoutを取得できるので、それ経由で変更できる。
<?php function hogeAction(){ $this->getHelper('layout')->setLayout('hoge'); } ?>
ヘルパーからsetLayoutできるのは、Zend_Layoutにそのままdelegateしてるから。
startMVCを使わなくてもいい?
第二引数にtrueを与えるとControllerへpluginとhelperが登録される。だからstartMVCしなくてもレイアウト適用はできる。
<?php $layout = new Zend_Layout(array('layoutPath' => '/path/to/script), true)
しかし、ContextSwitchを使う場合、こいつはstartMvcでセットされたZend_Layoutインスタンスを使うので、やはりstartMVCを使うのが安全。
コメントはまだありません