全堆栈与非完整堆栈MVC PHP框架有什么区别?

我不断看到Cake PHP和CodeIgniter被称为完整的堆栈MVC框架,而Zend Framework被认为是非完整堆栈.这是什么意思?
Zend Framework是一个use-at-will框架,它允许您使用其中的一些组件.您甚至可以在使用一些不同框架构建的应用程序中使用其中的一些组件.这样一来,use-at-will框架就像一个类库.

一个完整的堆栈框架意味着使用它的任何部分取决于你使用它的全部.例如,您必须使用框架的数据访问库,MVC架构,代码生成脚手架等,并且这些组件都依赖彼此协同工作,形成完整的框架.

回复你的评论:是的,耦合是一种看待它的方法.我把它看作是假设和灵活性之间的平衡.一个完整的堆栈框架假定你正在使用整个框架,从这个假设可以使一些额外的魔法发生.

ZF被设计为最小化假设(即,最小化耦合).它的组件对您是否使用其余组件进行了很少的假设,减少了依赖性,但是增加了灵活性.但是较少的假设意味着更少的魔法.

两种风格的框架都有合法的优势.

*简单类库和框架之间的一个关键区别在于框架是可扩展的.鼓励您通过OO机制(如子类化或多态)来增强框架的功能.而类库可能假设您将按原样使用其API,而不扩展其功能.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...