【发布时间】:2010-12-03 04:03:16
【问题描述】:
我经常看到 CakePHP 和 CodeIgniter 被称为全栈 MVC 框架,而 Zend 框架被称为非全栈。这究竟是什么意思?
【问题讨论】:
标签: php model-view-controller frameworks
我经常看到 CakePHP 和 CodeIgniter 被称为全栈 MVC 框架,而 Zend 框架被称为非全栈。这究竟是什么意思?
【问题讨论】:
标签: php model-view-controller frameworks
Zend Framework 是一个随意使用的框架,它允许您使用它的一些组件。您甚至可以在使用某些不同框架构建的应用程序中使用其中的一些组件。这样,随意使用的框架更像是一个类库。*
全栈框架意味着使用它的任何部分都取决于你使用它的全部。例如,必须使用框架的数据访问库、MVC 架构、代码生成脚手架等,这些组件都相互依赖,共同构成完整的框架。
关于您的评论:是的,耦合是一种看待它的方式。我将其视为假设和灵活性之间的平衡。全栈框架假设您将整个框架一起使用,并且根据该假设,它可以使一些额外的魔法发生。
ZF 旨在最小化假设(即最小化耦合)。它的组件很少假设您是否正在使用其余组件,从而减少了依赖性但增加了灵活性。但更少的假设意味着更少的魔法。
两种风格的框架都有合法的优势。
* 普通类库和框架之间的一个关键区别是框架旨在可扩展。我们鼓励您通过子类化或多态等 OO 机制来增强框架的功能。而类库可能假定您将按原样使用其 API,而不扩展其功能。
【讨论】: