以特定顺序从每个模块加载/执行基于模块的引导

时间:2012-06-20 17:03:27

标签: zend-framework

我在每个模块中都有模块boostrap文件,这些文件正在加载(我相信)文件系统顺序。如何使它们按照我指定的特定顺序加载/执行?

我的应用程序中有4个模块。

1. 1module
2. 2module
3. 3module
4. 4module. 

每个模块都有自己的引导程序,根据文件系统的顺序加载。 在上面的情况。应用程序按以下顺序加载上述模块的bootstraps。

1. loads bootstrap of module 1
2. loads bootstrap of module 2
3. loads bootstrap of module 3
4. loads bootstrap of module 4. 

但我喜欢按照以下顺序或以指定的任何顺序加载模块的bootstraps。

1. loads bootstrap of module 3
2. loads bootstrap of module 1
3. loads bootstrap of module 4
4. loads bootstrap of module 2

如何更改序列?

相关阅读,但不是我想要的。

http://phpdev.ro/zf-tutorial-series-part-1-module-based-app.html

http://forums.zend.com/viewtopic.php?f=69&t=1589

http://www.stephenrhoades.com/?p=386

2 个答案:

答案 0 :(得分:1)

通常,没有明确指定引导顺序。

但是,如果一个应用程序资源或_initXXX()方法需要首先初始化另一个资源,您可以调用:

$bootstrap->bootstrap('someResource');
$someResource = $bootstrap->getResource('someResource');

确保名为someResource的资源在使用之前全部自举。

请注意,如果您在扩展Zend_Application_Bootstrap_Bootstrap的应用程序引导程序中,则调用是:

$this->bootstrap('someResource');
$someResource = $this->getResource('someResource');

如果你在扩展Zend_Application_Module_Bootstrap的模块引导程序中,那么它会稍微改变为:

$application = $this->getApplication();
$application->bootstrap('someResource');
$someResource = $application->getResource('someResource');

答案 1 :(得分:0)

执行此操作的唯一方法是在模块前添加字母顺序的字母。或者,覆盖Zend_Application_Module_Bootstrap / Zend_Application_Resource_Modules并为其提供一个配置文件,其中包含应该引导的顺序。