何时在Zend Framework中使用模块?

Ruf*_*nus 13 php architecture model-view-controller zend-framework

在设置新的ZF项目时,我通常具有以下目录结构:

  • 应用
    • 模块
      • 默认
        • 调节器
        • 形式
        • 视图
        • 楷模
      • 管理
        • 调节器
        • 形式
        • 视图
        • 楷模
    • 语言
    • 共享
      • 楷模
  • 图书馆
  • 上市

我只使用模块,例如布局不同,或使用不同的数据库,或者当它是一个非常特殊的情况,如管理后端或论坛/板.然后我有应用程序的不同部分的控制器.例如JobController,ProductController等.

我的一位同事向我展示了他的基础布局.它几乎一样,但他使用了很多模块.像Job-Module,Product-Module这个模块中的每个模块大多有2个控制器,一个IndexController和一个AdminController.

他的设置工作并没有错,但我从未见过这样的方法,它似乎不需要复杂.

所以要结束:

  1. 你何时会使用模块,什么时候你会坚持使用控制器?
  2. 您的规则是什么决定模块或不模块?
  3. 在你的观点中,我的同事设置的缺点和优点是什么?
  4. 在您的观点中,我的设置的缺点和优点是什么?

TIA

Rufinus

编辑:有关ZF2.0中重新设计的模块的信息,请参阅http://mwop.net/blog/2012-04-30-why-modules.html

Gor*_*don 9

有什么利弊和你的观点,我的同事的设置的利弊?

更好的可重用性.假设您的同事将代码保留在与其他模块无关的模块中,他有效地创建了一个自包含的问题域.与您的方法不同,他可以更轻松地将整个模块复制到其他应用程序.

  • @Rufinus TBH,我发现ZF的模块一文不值,只要我无法在某个地方下载BlogModule,运行它的安装程序和爆炸!我的应用程序有一个博客. (3认同)

Izn*_*ood 6

你何时会使用模块,什么时候你会坚持使用控制器?

和你一样.对于我的网站的主要部分,如前端,管理部分,成员部分等...

您的规则是什么决定模块或不模块?

它是主要网站的一部分还是与前端相关的自己的小世界?特别是在设计方面.如何使用相同的布局管理一些模块?

在你的观点中,我的同事设置的缺点和优点是什么?

我的上帝保养.所有这些文件夹什么都没有.为什么您的页面和联系页面有两种不同的文件结构?如果他使用简单页面的模块,他还把管理员和成员放在哪里?

在您的观点中,我的设置的缺点和优点是什么?

真的与上面相反.易于理解和结合的结构.

它值得添加它的zend团队打算我们使用它链接的方式

另一件需要考虑的事情是你的网址会是什么样子.

myapp.com/contact

myapp.com/about

myapp.com/members/profile

myapp.com/members/profile/edit

myapp.com/members/mail

这是一种简单的方法来帮助组织模块或控制器中的内容.


Bry*_* M. 5

...就像Job-Module,Product-Module这个模块中的每个模块大多有2个控制器,一个IndexController和一个AdminController.

那种描述给我带来了一面红旗.如果这是一个非常大的项目,需要依赖于高度的可重用性,并且他以这样的方式对这些模块进行编码,使得它们可以独立于系统中的其他模块工作,并且需要隔离每个模块的管理区域,那么这可以被认为是一种合理的方法.

但我认为Job和Product之间可能存在依赖关系,在这种情况下,这种模块方法听起来像是过度工程化.特别是如果似乎有一个任意的"规则"被强制执行(就像每个模块一个业务对象).

此外,大多数MVC框架都会假设如果您有Job和Product模型,那么您有Job和Product控制器(不是每个实体的IndexController).模块的目的是隔离站点的逻辑和表示区域,而不是划分业务逻辑.

虽然在适当的MVC方面它可能既不存在也不存在,但创建一个无法完全独立于其他模块运行的模块对我来说没有意义.