代码之家  ›  专栏  ›  技术社区  ›  TomáÅ¡ Fejfar

Zend框架应用程序的默认模块化目录结构

  •  3
  • TomáÅ¡ Fejfar  · 技术社区  · 15 年前

    我知道手册中Zend框架模块化应用程序的默认目录结构。

    /application
      /controllers
      /modules
        /admin
          /controllers
          /views
      /views
      /configs
    /www
      index.php
    

    但我想知道我为什么要这样做。把默认模块放在 /应用程序 和其他模块 /应用程序/模块/:模块名 . 这更像是一个讨论问题,而不是 帮助我 问题。

    这样的目录结构有哪些优点和缺点:

    /application
      /modules
        /admin
          /controllers
          /views
        /default
          /controllers
          /views
      /configs
    /www
      index.php
    

    从我的观点来看,唯一的缺点是它不是这样写在默认/手册中的。我看不到其他的了。我错过什么了吗?

    更重要的是,我认为这个结构应该是任何新的ZF应用程序的默认结构。我想知道为什么Zend开发人员不使用它。

    5 回复  |  直到 13 年前
        1
  •  5
  •   Sumit Ghosh    14 年前

    实际上,您所建议的目录结构更适合于大型和复杂的应用程序。

    Magento是当今世界上最好的开源电子商务解决方案,它已经在Zend框架中进行了编码,并使用了与您所提议的类似的目录布局,这样就很容易扩展和添加新模块以及管理旧模块。

    同样,对于简单的应用程序和学习Zend,我建议每个人都遵循默认的目录结构。

        2
  •  4
  •   Pascal MARTIN    15 年前

    我想这样做是因为:

    • 有一个默认结构,当应用程序中没有模块时使用(即,只有一个默认模块——这意味着不需要“默认”目录)
    • 然后,您可以添加模块;而不必修改现有结构。

    我想这是一个和其他解释一样好的解释。


    不过,如果开发一个包含多个模块的应用程序,并且从一开始就知道这一点,那么我可能会使用您所提议的那种结构,而不是默认的那种结构。^^

    在我看来,那样的事情会更清楚——我看不出有什么问题!

    (事实上,很久以前我就有过一次这样的经历,没有遇到任何麻烦——但这不是一个“完整”的应用程序;更多的是一个原型…)

        3
  •  4
  •   simonrjones    15 年前

    实际上,这是 http://framework.zend.com/manual/en/zend.controller.modular.html

    你的方法听起来不错,ZF的要点是你可以选择如何自己管理事情。一个优点是代码略少。在Zend的默认方法中,您需要使用以下方法:

    $front = Zend_Controller_Front::getInstance();
    $front->addControllerDirectory('/path/to/application/controllers', 'default');
    $front->addModuleDirectory('/path/to/application/modules');
    

    而在你描述的方法中:

    $front = Zend_Controller_Front::getInstance();
    $front->addModuleDirectory('/path/to/application/modules');
    

    是你所需要的。

    Zend方法的一个优点是,如果您不需要模块,那么就不需要运行addmoduledirectory()方法。使用您的方法,这将始终需要运行,可能会产生少量的开销。

    本页 http://framework.zend.com/manual/en/project-structure.project.html “在应用程序目录中具有默认控制器目录”的状态为启动简单项目以及启动具有全局控制器/模型/视图的模块化项目提供了最佳布局。

    我想Zend的观点是,这对于只有默认模块的简单站点和具有多个模块的复杂站点都有效。不难计算出模块/目录中还有其他模块。但归根结底,这是个人喜好。

        4
  •  1
  •   NDM Haresh Vidja    15 年前

    我也有同样的问题。但我没能成功地建立起这个… 我之所以要使用它,是因为模块化结构与Zen_应用程序相结合,会自动实例化一个模块引导程序,它在/application/module/name/forms(以及控制器、视图、模型等)中注册命名空间。

    我唯一的问题是摆脱“默认”模块:s

    您可以在Zend论坛上找到该主题: http://forums.zend.com/viewtopic.php?f=69&t=2394&start=0

    希望它能得到答复,否则我会把它贴在这里。

        5
  •  1
  •   shasi kanth skdo    13 年前

    您可以在这里找到您想要的体系结构: http://www.osebboy.com/blog/zend-framework-modules/