什么使框架成为"真正的"MVC框架?

Ala*_*orm 20 .net php java model-view-controller smalltalk

在阅读有关MVC框架的在线讨论时,我听到很多评论指向来自Java/.NET开发人员的像Cake,Code Igniter和Symfony这样的PHP项目,其中包括"那些是聪明的黑客,但不是真正的MVC".

那么,是什么让某些东西成为"真正的"MVC框架; 即什么是.NET或Java MVC框架的例子,它做的事情与Cake,Code Igniter,Symfony等不同,那些不同的东西是什么?只是PHP缺乏强制对象导向需要引导程序,还是其他东西?

我知道为什么PHP语言"糟透了",我对MVC实现和/或使用的差异更感兴趣.

Bil*_*win 13

MVC的想法是将应用程序体系结构分解为三个独立的层,并允许这些层中的每一层使用不同的实现而不影响其他层.主要区别在于业务逻辑(模型)和表示(视图).

许多PHP框架尝试使用"固定软件"的Ruby on Rails哲学,因此模型和视图的正确运行要求两者都符合某种实现.也就是说,类必须以某种方式命名,项目中的文件必须根据某个目录结构进行组织,View脚本中的符号必须遵循约定等.

这使得很难独立地替换每个层的不同实现,这违背了MVC将层彼此分离的目标.

  • "那太不可思议了!" :-)但他们*做*有相互依赖的实现.例如,更改模型的名称需要更改访问该模型的URL,还需要更改使用该模型的Controller和View的名称. (2认同)