我在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函数来注册命名空间。谢谢回答!
答案 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');
}
}
如果这不起作用,请提供一些有关您所遇到的错误的信息。