我一直看到CakePHP和CodeIgniter被称为全栈MVC框架,而Zend Framework则被称为非全栈。这到底是什么意思?
发布于 2009-10-01 22:18:00
Zend framework是一个随意使用的框架,它允许您使用它的一些组件。您甚至可以在使用某些不同框架构建的应用程序中使用其中的一些组件。这样,随意使用框架更像是一个类库。*
全堆栈框架意味着使用它的任何部分都取决于您使用它的全部。例如,您必须使用框架的数据访问库、MVC架构、代码生成脚手架等,这些组件相互依赖,共同构成完整的框架。
Re你的评论:是的,耦合是看待它的一种方式。我把它看作是假设和灵活性之间的平衡。全堆栈框架假设您正在一起使用整个框架,并由此假设它可以产生一些额外的魔力。
ZF被设计为最小化假设(即最小化耦合)。它的组件几乎不会假设您是否在使用其余的组件,从而减少了依赖性,但增加了灵活性。但更少的假设意味着更少的魔力。
这两种风格的框架都有合理的优势。
*普通类库和框架之间的一个关键区别是框架是可扩展的。鼓励您通过OO机制(如子类化或多态性)增强框架的功能。而类库可能假设您将按原样使用它的API,而不扩展它的功能。
https://stackoverflow.com/questions/1506782
复制相似问题