1

我在 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 函数来注册命名空间。感谢您的回答!

4

2 回答 2

1

如果你想注册你的“我的”命名空间试试这个:

protected function _initNamespace()
{

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

    return $autoloader;
}

不需要派送。

于 2013-10-05T09:05:26.447 回答
0

这就是您所需要的:

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

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

于 2013-10-07T10:58:30.407 回答