0

嘿,伙计们,这是我关于 Stack Overflow 的第一个问题。我认为这个网站对我有很大帮助,所以我也试一试。

我目前正在开发多个需要从公共模块目录继承模块的 Zend Framework 应用程序。使用的文件结构是常规方法(省略实际名称和引用以保护应用程序结构):

/application1
    /application
        /modules
            /module1
            /module2
            /module3
            /...

/application2
    /application

现在我已经尝试在 Application2 的引导程序中手动自动加载每个模块,如下所示:

$moduleLoader = new Zend_Application_Module_Autoloader(
    array('namespace' => 'Prefix', 'basePath' => path_to_application1_application_modules_modulename)
);
$autoloader->pushAutoloader($moduleLoader);

这行得通,但正如您可以想象的那样,这将成为一项相当乏味的工作。现在我也尝试在 FrontController 中设置公共模块目录,如下所示:

$frontController = Zend_Controller_Front::getInstance();
$frontController->addModuleDirectory(path_to_application1_application_modules);

但这似乎并没有引导任何模块。我是否忘记了一些重要的事情?非常感谢您的帮助!

4

2 回答 2

0

您可以resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"config.ini路径中使用配置,然后只使用自动加载器。

它对我有用,我只是通过更改resources.frontController.moduleDirectoryconfig.ini 中的路径来使用来自另一个应用程序的模块。

要在您的配置上尝试它,您应该在application2 config.ini 中放置resources.frontController.moduleDirectory = APPLICATION_PATH "/../application1/application/modules"

LE:如果您希望您的模块被引导,请在moduleDirectory 行之后添加config.ini 。 resources.modules[] = ""自己尝试过,如果没有这个,其他模块在进入随机模块时不会被引导。

于 2010-06-23T08:08:55.117 回答
0

当引导你的模块时,你是作为 Zend_Application_Module_Bootstrap 来做的。很明显,但该文件也应该在根模块文件夹中。

于 2010-06-24T15:53:08.230 回答