【发布时间】:2010-11-13 10:17:44
【问题描述】:
在一些较小的网站上使用了一些 PHP 框架,例如 Codeigniter 和 Kohana,我开始怀疑 MVC 是否仍然适用于较大的项目,如果可以,需要采取哪些预防措施来保持干净的代码。较大的网站使用哪些做法来防止这种情况发生? Amazon 或 Flickr 的代码是否使用 MVC 或它的某种变体?是否有针对特定问题的指南向您展示如何最好地为大型项目实施 MVC?
-- 切线--
在当前使用 Kohana 的项目中,我开始质疑我的模型应该扮演什么角色。很多时候,模型只能描述我正在尝试构建的对象的一小部分。即,需要一个用户对象,所以我使用我的用户模型从用户表中提取我的用户。但是每个用户的库存中也有几个项目,所以我还需要使用 Users_Inventory_Model。但是,每个库存项目也有与之关联的其他表,依此类推,直到我发现在我的控制器中构建单个用户需要我访问多个模型。现在,想象一下在许多不同的控制器中执行此操作,突然间我发现自己有凌乱和冗余的代码以及非常胖的控制器。
这让我想到,也许我应该有一些库来处理大部分繁重的工作。这样,我可以拥有一个用户库,让它加载我所有相关的用户数据并运行大部分逻辑,例如更新、删除等。这是大多数 MVC 项目发展的方式吗?让库与模型进行大部分交互,而控制器调用库并为视图准备数据?无论如何,这只是我对 MVC 的一些疑问,我一直无法在网上找到答案。
【问题讨论】:
-
好吧,stackoverflow.com 是用 mvc 构建的 :-)
标签: model-view-controller kohana models