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