在Zend Framework中修改Action Helper中的视图

时间:2010-03-03 13:01:29

标签: php zend-framework

我想在preDispatch()方法中修改Zend Framework中Action Helper的视图。 所以我做了类似的事情:

class MyHelper extends Zend_Controller_Action_Helper_Abstract {
    public function preDispatch() {
        $view = $this->getActionController()->view;
        $view->doSomething();
    }
}

这样做可以吗?我想要做的是 - MyHelper需要根据用户区域设置调整模板的一些路径(在本例中是视图是SmartyView),所以我想在我的动作助手中读出用户区域设置,然后相应地调整视图。

我在这里做的还是我应该采取不同的方式?

谢谢!

1 个答案:

答案 0 :(得分:1)

可以使用ActionHelper执行此操作。但是你必须明确地调用它。 Action Helper中不存在preDispatch回调方法。如果您想使用调度回调,那么您正在寻找Zend Controller Plugin

在初始化Zend_View之前,您的方法的另一种方法是在引导程序中初始化Zend_Locale。然后,您可以在初始化Zend_View时获取区域设置,并在引导期间直接调整路径,而不是在分派周期期间。有关想法,请参阅Zend_Application上的示例。