如何在zend框架中为不同的模块使用不同的bootstraping

时间:2009-06-19 02:20:00

标签: php zend-framework

我有两个模块,默认和mojo 在两个模块的初始引导代码相同之后,我想要为每个模块使用不同的布局(或使用不同的凭证检查等)。
我把它放在哪里:IF(module =='mojo')做这个ELSE做那个

3 个答案:

答案 0 :(得分:3)

如果您正在使用Zend_Application(在ZF1.8中),那么您应该能够使用特定于模块的配置选项来提供此功能,如relevant section in the documentation中所述。

这将要求您在配置中设置布局,使其看起来像

mojo.resources.layout.layout = "mojo"

anothermodule.resources.layout.layout = "anotherlayout"

然后由引导程序自动设置布局。

另一种方法是使用实​​现preDispatch()方法的前端控制器插件,根据模块名称设置布局。

答案 1 :(得分:1)

嗯,我还没试过这个

http://www.nabble.com/Quick-Guide-How-to-use-different-Layouts-for-each-module-to23443422.html#a24002073

我现在这样做的方式是通过前端控制器插件

类似

switch ($request->getModuleName()) {
   case "": 
      // set layout ...
}

答案 2 :(得分:0)

我几天前研究过这个主题,试图让它单独使用bootstrap配置。最大的问题是所有的bootstrap文件都被加载了,因此它给出了一些使用布局的奇怪结果。

我的结论是您可以使用配置,但您需要使用FrontController插件或ActionController帮助程序。如果你想在application.ini中使用config set,并且你想通过bootstrap加载配置,那么帮助是唯一的方法。然后,您可以从帮助程序加载ActionController,然后执行getInvokeArgs以加载引导程序。很多hastle ...... :)。

无论如何,我在一篇博文中做了一个小实现作为例子:http://blog.keppens.biz/2009/06/create-modular-application-with-zend.html

古德勒克,

的Jeroen