代码之家  ›  专栏  ›  技术社区  ›  Steven Mercatante Dimitri Kopriwa

全栈与非全栈mvc php框架有什么区别?

  •  9
  • Steven Mercatante Dimitri Kopriwa  · 技术社区  · 15 年前

    我一直看到cakephp和codeigniter被称为全栈mvc框架,而zend框架被称为非全栈。这到底是什么意思?

    1 回复  |  直到 15 年前
        1
  •  13
  •   Bill Karwin    15 年前

    zend框架是一个随意使用的框架,它允许您使用它的一些组件。您甚至可以在使用 不同的 框架。这样一来,随意使用框架更像一个类库。

    一个完整的堆栈框架意味着使用它的任何部分取决于使用它的所有部分。例如,您必须使用框架的数据访问库、mvc体系结构、代码生成脚手架等,并且这些组件都相互依赖,共同工作以形成完整的框架。

    回复你的评论:是的,耦合是一种看待它的方式。我认为这是假设和灵活性之间的平衡。一个完整的堆栈框架假设你使用了整个框架,从这个假设,它可以使一些额外的魔术发生。

    ZF被设计成最小化假设(也就是说,最小化耦合)。它的组件很少假设您是否正在使用其余的组件,减少了依赖性,但增加了灵活性。但假设越少,魔术就越少。

    这两种类型的框架都有合法的优势。


    *普通类库和框架之间的一个关键区别是框架是可扩展的。我们鼓励您通过像子类化或多态性这样的面向对象机制来增强框架的功能。而类库可能假定您将按原样使用其api,而不扩展其功能。