什么是Zend Expressive和Zend MVC?

xyz*_*xyz -1 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,文档说MVC是一个层.虽然我找不到Expressive for zf2.

题:

  1. 是Zend MVC还是Zend Expressive包?并且是zf3的一部分?
  2. 当我看到在Zend的MVC和Zend表现已安装的软件包,我没有看到一个包的Zend框架,但我看到的Zend组件单独包装,如zend-http,zend-json等,所以在这些(表现力和MVC)只是建在不同的Zend组件?
  3. 我怎么知道我在使用ZF3?

Tim*_*ain 16

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

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

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

是的,并且有很多重叠.

我怎么知道我在使用ZF3?

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

ZF3和Expressive之间的界限(以及当你使用其中一个时)有点模糊.这个讨论可以帮到你.

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