什么是Zend Expressive和Zend MVC?

时间:2018-01-04 12:59:49

标签: php zend-framework zend-framework2 zend-framework3 zend-expressive

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

我阅读了它们,并了解到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?

1 个答案:

答案 0 :(得分:14)

  

是Zend MVC还是Zend Expressive包?并且是zf3的一部分?

这取决于你对"包"的定义。 Zend Expressive不是ZF3的一部分,它是ZF3的微框架替代品。 Zend MVC和Zend Expressive都是软件包,它们也依赖于其他软件包。 ZF3就是所谓的元数据包",这意味着它没有自己的任何代码,它是 soley 其他包的集合。 ZF3元包包含Zend MVC包。

  

这些(表达式和MVC)只是构建在不同的Zend组件上吗?

是的,而且有很多重叠。

  

我怎么知道我在使用ZF3?

这更像是一个语义问题。如果您安装了Zend Framework元数据包,那就是ZF3。如果您只是使用MVC包,您可能会认为它仍然是ZF3。如果您使用的是表达式,那就是其他内容。

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

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