大多数PHP框架实际上是MVA而不是MVC吗?

时间:2011-07-28 06:40:25

标签: php frameworks controller adapter

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

那些框架的说法是错误的还是我错过了什么?

1 个答案:

答案 0 :(得分:7)

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

这并不完全偏离严格的MVC,模型和视图可以相互通信,所以说它“错误”有点苛刻。我想说这是对MVC的另一种看法。

编辑:

请参阅CodeIgniter对它的看法:

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

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