嘿,伙计们,这是我关于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);
但这似乎不是任何模块的Bootstrap。我忘记了重要的事情吗?非常感谢您的帮助!
答案 0 :(得分:0)
您可以在 config.ini 路径中使用配置resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
,然后只使用自动加载器。
它适用于我,我只是通过更改config.ini中resources.frontController.moduleDirectory
的路径来使用其他应用程序中的模块。
要在您的配置上进行尝试,请在 application2 config.ini中添加resources.frontController.moduleDirectory = APPLICATION_PATH "/../application1/application/modules"
LE:
如果您希望模块引导,请在带有moduleDirectory的行之后添加 config.ini resources.modules[] = ""
。我自己试了一下,如果没有这个,进入随机模块时其他模块都不会自动启动。
答案 1 :(得分:0)
当引导你的模块时,你是以Zend_Application_Module_Bootstrap的形式进行的。很明显,但文件也应该在根模块文件夹中。