djb*_*djb 4 php model-view-controller
我在PHP中玩MVC.我没有使用框架,我只是想了解模式.
有时我会看到控制器,例如在本教程中,使用传递给构造函数的模型和视图进行实例化,并且在同一个教程中,视图(此处为"模板")类在构造函数中使用Controller!
所以我的问题是:
鉴于MVC在网络上的许多变化和误解,我投票将这个问题视为非建设性的.由于评论规模有限,我将此答案作为社区Wiki提供.
MVC最初是由Trygve Reenskaug为桌面环境构思的,而不是为网络构思的.我们现在看到的主要是某些形式的原始模式的变体,如MVP,HMVC,Model2-MVC等.他们的实现彼此不同,人们花了很多时间来讨论"MVC"究竟是什么或者应该如何实现.
就个人而言,我更喜欢MVC的企业应用程序架构定义模式,它说MVC 将用户界面交互分成三个不同的角色,因为这个定义没有实现的概念.
在书中,福勒指出,最重要的区别是模型与控制器和视图的分离.虽然本书确实涵盖了角色之间的关联,但我认为重点是理解并关注角色而不是实现.
设计模式是蓝图,而不是详细的原理图.此外,MVC是一种模式语言.它的目标是为项目添加结构/表单.了解角色的用途,然后提出适用于您的项目的实现.
Fowler还有一篇关于GUI体系结构的长篇文章,涵盖了MVC,详细解释了关联和依赖关系,如果你没有这本书的话.