代码之家  ›  专栏  ›  技术社区  ›  Itay Moav -Malimovka

Zend框架中不同模块如何使用不同的引导

  •  0
  • Itay Moav -Malimovka  · 技术社区  · 15 年前

    我有两个模块,default和mojo。
    在两个模块的初始引导代码相同之后,例如,我希望为每个模块使用不同的布局(或使用不同的凭证检查等)。
    我把这个放在哪里:如果(module='mojo')做这个,否则做那个

    3 回复  |  直到 13 年前
        1
  •  1
  •   iceangel89    15 年前

    嗯,我没试过这个

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

    我现在这样做是通过一个前端控制器插件

    类似的东西

    switch ($request->getModuleName()) {
       case "": 
          // set layout ...
    }
    
        2
  •  3
  •   Tim Wardle    15 年前

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

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

    mojo.resources.layout.layout = "mojo"
    
    anothermodule.resources.layout.layout = "anotherlayout"
    

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

    另一种选择是使用前控制器插件来实现predpatch()方法,以基于模块名设置布局。

        3
  •  0
  •   Amazium    15 年前

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

    我的结论是,您可以有适当的配置,但您需要与FrontController插件或ActionController帮助程序一起工作。如果您想在application.ini中使用config set,并且想通过引导加载config,那么helpers是唯一的方法。然后,您可以从助手加载actionController,并在上面执行getInvokeargs以加载引导程序。很多草率的…:)

    不管怎样,我在一篇博客文章中做了一个小的实现作为例子: http://blog.keppens.biz/2009/06/create-modular-application-with-zend.html

    古德勒克

    耶罗恩