我有一个关于CakePHP架构的问题。
我有一个应用程序,它将只有两个模型(产品和类别)。
我必须做一个在线产品浏览器。对我来说,有一个控制器" Products“和一个控制器" Categories”是没有意义的,因为我将在产品上有20+操作,而在类别上没有。
我有几个关键功能,我可以为每个功能使用一个控制器吗?例如,一个具有动作"SearchResult“、"AdvancedSearch”、"BasicSearch“的控制器"Search”。
我们将是这个项目的几个开发人员,我不希望我们总是被阻止,因为其中一个人在产品控制器上做一些编辑(我真的不喜欢有1000+代码行的文件)。
第二个问题:我应该用来在几个不同的子视图中分割视图的机制是什么?例如,对于一个产品的详细信息视图,我有很多东西可以显示:图片部分,描述部分,类似产品,评论,...可以有子部分吗?
非常感谢
发布于 2011-08-19 14:40:16
对于“子视图”,请查看元素,这些元素就是子视图。它们是可以包含在其他视图中的视图代码片段。正确的元素结构可以创建一些非常优雅的视图/子视图关系。http://book.cakephp.org/view/1081/Elements
至于你的控制器问题,这也是我一直在努力解决的问题。在我看来,听起来你好像对你的行为进行了错误的分类。考虑您正在执行的操作的替代分类(将所有搜索功能混合到一个控制器中就是一个很好的例子)。
也许您应该将控制器视为对各种操作进行分类的对象,而不是可以在其上执行各种操作的站点的各个方面(就像您正在做的那样)。因此,除了可以搜索、列出、购买等的类别控制器之外,您还可以拥有产品控制器(它可以集中查看您的产品--可能是按类别查看,也可以是单独查看),或者是您的用户帐户的用户控制器?如果不看一下您的应用程序细节,就很难说清楚。然后,Search将是一个操作,它将在您的产品上执行。
我犯的一个错误是根据我将要拥有的页面而不是模型来选择我的控制器。考虑您的数据(模型)和可以对其执行的操作(控制器中的操作),然后考虑您的视图。
我希望我能给你更具体的帮助,但由于不知道你的应用程序的具体需求,我只能给你关于如何分解你的控制器的指导。看一下这个问题:
CakePHP - file structure confusion - different controllers, or all in same?
关于这个话题的更多讨论。
希望这能有所帮助!
发布于 2011-08-19 14:39:23
https://stackoverflow.com/questions/7122721
复制相似问题