【问题标题】:Are most PHP frameworks actually MVA instead of MVC?大多数 PHP 框架实际上是 MVA 而不是 MVC 吗?
【发布时间】:2011-07-28 06:40:24
【问题描述】:

许多 PHP 框架声称它们实现了 MVC 设计模式。但是,在它们的实现中,模型和视图彼此不知道,并且它们之间的每个通信都必须通过控制器来完成。正如我在维基百科中看到的,这是 MVA(模型视图适配器)而不是 MVC 设计模式方法,因为在 MVC 中,模型和视图直接通信。

那些框架的声明是错误的还是我遗漏了什么?

【问题讨论】:

  • 真的吗?我不知道,很好的发现。我一直认为它就像 MVC 的模型 视图。也许你是对的..

标签: php frameworks controller adapter


【解决方案1】:

像 CodeIgniter 这样的框架是 MVA,是的。但是,他们的声明并没有错误,因为 MVA 基本上是一种不同类型的 MVC 部署。处理业务逻辑的用户点击中介控制器;他们还调用模型来获取数据并准备视图。

这与严格的 MVC 并没有完全不同,模型和视图可以相互通信,所以说它是“错误的”有点苛刻。我会说这是对 MVC 的不同看法。

编辑:

查看 CodeIgniter 的看法:

https://www.codeigniter.com/user_guide/overview/at_a_glance.html#

模型不是必需的,因为一切都可以在控制器中完成(显然不建议)。请注意,CI(和大多数其他框架)声称它们基于 MVC 原则。

【讨论】:

  • 嗯...也许你是对的,其他 model-xxx-yyy 维基百科文章说它们是基于 MVC。 “不同的观点/采取”可能确实是一个更好的术语。
猜你喜欢
  • 2021-05-26
  • 2011-06-25
  • 1970-01-01
  • 2014-04-01
  • 2018-09-06
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
相关资源
最近更新 更多