继承前端控制器

要继承前端控制器,至少需要覆盖getInstance()方法:

class My_Controller_Front extends Zend_Controller_Front
{
    public static function getInstance()
    {
        if (null === self::$_instance) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }
}

覆盖getInstance()保证后面调用Zend_Controller_Front::getInstance()会返回子类的实例,而不是Zend_Controller_Front实例 —— 这对于一些可替换的路由器和视图助手非常有用。

通常不需要继承前端控制器,除非你需要增加新的功能(比如,一个插件自动加载器,或者一个方法来指定动作助手路径)。你想要改动的地方可能包括修改控制器目录的存储方式,使用的默认路由器以及分发器。v

猜你喜欢

转载自hnlixf.iteye.com/blog/1913039
今日推荐