J4N*_*J4N 1 architecture components cakephp
我对CakePHP有一个关于它的架构的问题.
我有一个应用程序,它只有两个模型(产品和类别).
我要制作一个在线产品浏览器.对我来说,拥有一个控制器"产品"和一个控制器"类别"是没有意义的,因为我将对产品进行20多个操作,而不对类别进行操作.
我有几个关键的功能,我可以为每个功能都有一个控制器吗?例如,一个控制器"搜索",其具有动作"SearchResult","AdvancedSearch","BasicSearch".
我们将是这个项目的几个开发人员,我不希望我们总是被阻止,因为一个人正在对产品控制器进行一些编辑(我真的不喜欢1000行代码的文件).
第二个问题:在几个不同的子视图中,我应该使用哪种机制来分割视图?例如,为了查看一个产品的详细信息,我需要展示很多东西:图片部分,描述部分,类似产品,评论,......是否可以有子部分?
非常感谢你
对于"子视图",请查看Elements,就是这样.它们是可以包含在其他视图中的视图代码片段.元素的正确结构可以创建一些非常优雅的视图/子视图关系. http://book.cakephp.org/view/1081/Elements
至于你的控制器问题,这也是我一直在努力解决的问题.从我看来,听起来你错误地分类了你的行为.考虑您正在进行的操作的替代分类法(将所有搜索功能混合到一个控制器中就是一个很好的例子).
也许您应该将控制器视为对各种操作进行分类的对象,而不是可以执行各种操作的站点方面(就像您正在做的那样).因此,您可以使用产品控制器(处理聚合 - 或许按类别 - 或单独处理)查看您的产品,而不是您可以搜索,列出,购买等的CATEGORY控制器,也许还有用户控制器为您的用户帐户?如果不查看您的应用程序细节,很难说.随后,搜索将是一个行动,将您进行产品.
我犯了错误的一件事是根据我所拥有的页面而不是模型选择我的控制器.考虑一下您的数据(模型)以及可以对它们执行的操作(控制器中的操作),然后考虑您的观点.
我希望我能给你更具体的帮助,但不知道你的应用程序的具体需求,我只能给你如何分解你的控制器的指导.看看这个问题:
CakePHP - 文件结构混乱 - 不同的控制器,或者全部在同一个?
有关该主题的更多讨论.
希望有所帮助!