什么是 Zend Expressive 和 Zend MVC?

What is Zend Expressive and Zend MVC?

我正在 PHP 开始一个新项目,想选择最新的 ZendFramework。我看到 Zend Framework 3 已经发布,所以我想从 Zend Framework 3 本身开始。但是当我转到 Zend 的 INSTALL 页面时,他们给出了 Zend MVC 和 Zend expressive 的选项。

我阅读了它们,了解到 Expressive 是一个微框架,而 MVC 是一个全栈框架。除此之外我不是很清楚

我看到 Zend MVC 也适用于 ZF2,documentation 说 MVC 是一个层。不过我找不到 Expressive for zf2。

问题:

  1. Zend MVC 和 Zend Expressive 包都是吗?并且是 zf3 的一部分?
  2. 当我在 Zend MVC 和 Zend Expressive 中看到已安装的包时,我没有看到 Zend 框架的包,但我看到了 Zend 组件的单独包,例如 zend-httpzend-json等等。那么这些(表现力和 MVC)只是建立在不同的 Zend 组件之上吗?
  3. 我怎么知道我使用的是 ZF3?

Are both Zend MVC and Zend Expressive packages? and are part of zf3?

这有点取决于您对 "packages" 的定义。 Zend Expressive 不是 ZF3 的一部分,它是 ZF3 的微框架替代品。 Zend MVC 和 Zend Expressive 都是包,它们还依赖于其他包。 ZF3 就是所谓的"meta package",这意味着它没有任何自己的代码,它是soley 其他包的集合。 ZF3 元包包括 Zend MVC 包。

are these (expressive and MVC) just built over different Zend components?

是的,而且有很多重叠。

How do I know that I am using ZF3?

这更多是语义问题。如果您安装了 Zend Framework 元包,那就是 ZF3。如果您只是使用 MVC 包,您可能会争辩说它仍然是 ZF3。如果您使用的是 Expressive,那就另当别论了。

ZF3 和 Expressive 之间的界限(以及您何时会使用其中之一)有些模糊。 This discussion可能对你有帮助。

在之前的编辑中,您询问过应该使用哪个来创建 REST API。你可以用任何一个来做到这一点。