在Zend Framework框架中,通常情况下,每个Action对应着自己的模板目录,以及相应的模板文件。但是有的时候,一些控制器处理的业务逻辑类似,可以公用同一套模板,这个时候,我们就没有必要再去重新复制一个一模一样的模板文件,因此,适时的关闭模板自动分发,是一个好的手段。
我目前总结出ZF有三种关闭自动模板的方式:
最常见的,通过前端控制器参数实现,这种方法应该大多数ZF使用者都应该知道的。
1.//关闭模板自动选择
2.$front = Zend_Controller_Front::getInstance();
3.$front->setParam('noViewRenderer', true);
第二种方法,则是通过控制器的动作助手来关闭该功能
1.$this->_helper->viewRenderer->setNoRender();
最后一种,比较少见,是利用控制器的静态方法移除viewRenderer这个内建的动作助手实现功能,比较巧妙,可以算是一个进阶技巧了。
1.//关闭模板自动选择
2.Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer');
以上三种,则是我对于ZF中模板选择功能的一个小结,也许还有其他的方法暂时没有发现,不过目前来看这三种已经满足了大多数人的需求。