Ruf*_*nus 13 php architecture model-view-controller zend-framework
在设置新的ZF项目时,我通常具有以下目录结构:
我只使用模块,例如布局不同,或使用不同的数据库,或者当它是一个非常特殊的情况,如管理后端或论坛/板.然后我有应用程序的不同部分的控制器.例如JobController,ProductController等.
我的一位同事向我展示了他的基础布局.它几乎一样,但他使用了很多模块.像Job-Module,Product-Module这个模块中的每个模块大多有2个控制器,一个IndexController和一个AdminController.
他的设置工作并没有错,但我从未见过这样的方法,它似乎不需要复杂.
所以要结束:
TIA
Rufinus
编辑:有关ZF2.0中重新设计的模块的信息,请参阅http://mwop.net/blog/2012-04-30-why-modules.html
有什么
利弊和你的观点,我的同事的设置的利弊?
更好的可重用性.假设您的同事将代码保留在与其他模块无关的模块中,他有效地创建了一个自包含的问题域.与您的方法不同,他可以更轻松地将整个模块复制到其他应用程序.
你何时会使用模块,什么时候你会坚持使用控制器?
和你一样.对于我的网站的主要部分,如前端,管理部分,成员部分等...
您的规则是什么决定模块或不模块?
它是主要网站的一部分还是与前端相关的自己的小世界?特别是在设计方面.如何使用相同的布局管理一些模块?
在你的观点中,我的同事设置的缺点和优点是什么?
我的上帝保养.所有这些文件夹什么都没有.为什么您的页面和联系页面有两种不同的文件结构?如果他使用简单页面的模块,他还把管理员和成员放在哪里?
在您的观点中,我的设置的缺点和优点是什么?
真的与上面相反.易于理解和结合的结构.
它值得添加它的zend团队打算我们使用它链接的方式
另一件需要考虑的事情是你的网址会是什么样子.
myapp.com/contact
myapp.com/about
myapp.com/members/profile
myapp.com/members/profile/edit
myapp.com/members/mail
这是一种简单的方法来帮助组织模块或控制器中的内容.
...就像Job-Module,Product-Module这个模块中的每个模块大多有2个控制器,一个IndexController和一个AdminController.
那种描述给我带来了一面红旗.如果这是一个非常大的项目,需要依赖于高度的可重用性,并且他以这样的方式对这些模块进行编码,使得它们可以独立于系统中的其他模块工作,并且需要隔离每个模块的管理区域,那么这可以被认为是一种合理的方法.
但我认为Job和Product之间可能存在依赖关系,在这种情况下,这种模块方法听起来像是过度工程化.特别是如果似乎有一个任意的"规则"被强制执行(就像每个模块一个业务对象).
此外,大多数MVC框架都会假设如果您有Job和Product模型,那么您有Job和Product控制器(不是每个实体的IndexController).模块的目的是隔离站点的逻辑和表示区域,而不是划分业务逻辑.
虽然在适当的MVC方面它可能既不存在也不存在,但创建一个无法完全独立于其他模块运行的模块对我来说没有意义.
| 归档时间: | 
 | 
| 查看次数: | 2656 次 | 
| 最近记录: |