我想在preDispatch()方法中修改Zend Framework中Action Helper的视图。 所以我做了类似的事情:
class MyHelper extends Zend_Controller_Action_Helper_Abstract {
public function preDispatch() {
$view = $this->getActionController()->view;
$view->doSomething();
}
}
这样做可以吗?我想要做的是 - MyHelper需要根据用户区域设置调整模板的一些路径(在本例中是视图是SmartyView),所以我想在我的动作助手中读出用户区域设置,然后相应地调整视图。
我在这里做的还是我应该采取不同的方式?
谢谢!
答案 0 :(得分:1)
您可以使用ActionHelper执行此操作。但是你必须明确地调用它。 Action Helper中不存在preDispatch
回调方法。如果您想使用调度回调,那么您正在寻找Zend Controller Plugin。
在初始化Zend_View
之前,您的方法的另一种方法是在引导程序中初始化Zend_Locale
。然后,您可以在初始化Zend_View
时获取区域设置,并在引导期间直接调整路径,而不是在分派周期期间。有关想法,请参阅Zend_Application
上的示例。