Zend 1.11 + 不能从另一个模块的引导程序中使用模块资源


Zend 1.11 + Cannot use a module resource from within another module's bootstrap

我有一个Zend应用程序,它有一个CMS模块和一个用户模块。我需要在 CMS 模块的引导程序中执行一些操作,该操作涉及用户模块下的服务。

当我尝试实例化服务类时,出现"找不到类"错误,表明 Users 模块中的资源尚未自动加载。

我想强调的是,我必须在引导期间而不是之后这样做。

如何从管理模块的引导程序中从我的用户模块加载资源?

您可以在全局引导程序中(而不是在特定于模块的引导程序中)执行所有必需的应用程序类和命名空间的自动加载:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    protected function _initAutoloaders()
    {
        // require / require_once for libs/modules with specific autoloaders
        // Load HTML purifier autoloader
        require_once 'HTMLPurifier' . DS . 'HTMLPurifier.auto.php';
        // Load WideImage
        require_once 'WideImage' . DS . 'WideImage.php';
        // ...
        // Use Zend autoloader for other stuff
        $zendAutoloader = Zend_Loader_Autoloader::getInstance();
        // Register stuff.
        $autoloader = array(new SomeClassLoader('SomeLib', LIB_PATH), 'loadClass');
        $zendAutoloader->pushAutoloader($autoloader, 'LibName''');
        // ...

    }
    // ... Other initializers
}