在bootstrap文件中运行函数

时间:2013-10-05 00:47:32

标签: php zend-framework

我在Zend Framework中使用带有命名空间MY的自定义库,我在Bootstrap.php文件中注册它(Application / Bootstrap.php)

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    public function run()
    {
        $frontController = Zend_Controller_Front::getInstance();
        Zend_Loader_Autoloader::getInstance()->registerNamespace('My');
        $frontController->dispatch();
    }
}

没关系,但当我将名称run()更改为_initRegisterNamespace()时

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
        public function _initRegisterNamespace()
        {
            $frontController = Zend_Controller_Front::getInstance();
            Zend_Loader_Autoloader::getInstance()->registerNamespace('My');
            $frontController->dispatch();
        }
    }

不行,有很多错误。因为Bootstrap将使用start“_init”运行每个函数。为什么我不使用_init函数来注册命名空间。谢谢回答!

2 个答案:

答案 0 :(得分:1)

如果您想注册“我的”命名空间,请尝试:

protected function _initNamespace()
{

    $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'My',
            'basePath'  => dirname(__FILE__),
    ));

    return $autoloader;
}

没有必要派遣。

答案 1 :(得分:0)

这就是你需要的一切:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    public function _initRegisterNamespace()
    {
        Zend_Loader_Autoloader::getInstance()->registerNamespace('My');
    }
}

如果这不起作用,请提供一些有关您所遇到的错误的信息。