我一直看到CakePHP和CodeIgniter被称为全栈MVC框架,而Zend Framework则被称为非全栈。这到底是什么意思?
我一直看到CakePHP和CodeIgniter被称为全栈MVC框架,而Zend Framework则被称为非全栈。这到底是什么意思?
Zend Framework是一个随意使用的框架,允许您使用其中的某些组件。 您甚至可以在使用其他框架构建的应用程序中使用其中一些组件。 这种方式,随意使用的框架更像一个类库。
完整堆栈框架表示您在使用其中任何部分时都依赖于全部内容。 例如,您必须使用框架的数据访问库、MVC架构、代码生成脚手架等,这些组件都相互依存,以形成完整的框架。
关于您的评论:是的,耦合是一种看待它的方式。我将其视为假设和灵活性之间的平衡。完整堆栈框架假设您正在一起使用整个框架,并从该假设中可以产生一些额外的魔法。
ZF旨在最小化假设(即最小化耦合)。它的组件对是否使用其余组件进行了少量假设,减少了依赖性,但增加了灵活性。但较少的假设意味着更少的魔法。
两种风格的框架都有合法的优势。
*普通类库和框架之间的一个关键区别在于,框架旨在可扩展。您可以通过OO机制(如子类化或多态)增强框架的功能。而类库可能假设您将使用其API原样,而不扩展其功能。