你可以在PHP mvc中拥有太多模型吗?

时间:2012-05-02 16:15:12

标签: php model-view-controller oop

我正在为我运行的网站创建自己的PHP mvc,以便它只包含所需的代码,尽可能轻快。

该网站具有相当多的功能和用户功能,因此可以确定哪些控件开始变得非常复杂,哪些模型可以控制哪些操作。

示例

说我有以下会员功能

  • 收藏夹
  • 历史

其中每一项都可以通过 membercontroller 来控制,但我的问题是,是将它们全部放在一个模型中还是每个模型中都有。

这三个中的每一个都有许多动作,例如:

  • 添加到收藏夹
  • 删除收藏
  • 显示收藏夹
  • 添加到历史记录
  • 删除历史记录
  • 显示历史
  • 加为好友
  • 删除好友
  • 留言朋友

...等

目前我认为每个人的模特(最喜欢的,朋友的,历史的)可能是最好的方式,但是它可以达到你有太多模特的地步吗?

目前整个网站有6个控制器,17个模型和25个视图

3 个答案:

答案 0 :(得分:1)

我建议您让ModelController处理以某种方式修改Model的操作。

即。 FavoritesController处理添加,删除和显示收藏(存储在FavoritesModel上)。保持您的控制器精益/纤薄,更容易测试(更少的方法)并将逻辑应用程序部分保持在一起。

此外,您可以将应用程序划分为较小的应用程序,每个应用程序处理以下内容:

  • 认证/登录
  • 社会/共享
  • 添加/阅读/展示文章(主要应用)

答案 1 :(得分:1)

是的,从技术上讲,你可以拥有太多的模型,但是有一个限制(一如既往)PHP中可以存在多少个类。但它非常大,所以继续前进。您不仅可以同时拥有许多模型,还可以拥有不同类型的模型。所以继续前进,不要因为认为到目前为止你可能没有看到限制来限制你的编码。

所以不是文件的数量,而是你的代码写得多好,例如:是一切正确分组在一起的吗?另见Domain Model

答案 2 :(得分:0)

在这种情况下,没有“正确”的答案,所以我能给你的只是我自己的解释。我会使用服务将一个或多个模型绑定在一起。因此,用户服务将使用用户模型和收藏夹模型来操纵和显示用户收藏夹。