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

Lel*_*mbo 14 php frameworks controller adapter

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

那些框架的主张是错误的还是我错过了什么?

Mic*_*l B 7

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

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

编辑:

请参阅CodeIgniter对它的看法:

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

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