Symfony中的PSR-7支持在ob娱乐下载这里
不到两周前,PHP社区全面接受了欧宝体育平台怎么样PSR-7,为PHP提供了一组通用的HTTP消息接口.这已经巨大的所有PHP的互操作性和标准化的潜力。这对中间件:钩子到请求-响应过程的函数。将来,围绕这些新接口编写的中间件可以用于任何框架。
介绍PSR HTTP消息桥
今天,一个巨大的许多项目使用Symfony的ob娱乐下载请求
而且响应
类别(透过HttpFoundation组件),包括Laravel, Drupal 8和StackPHP。在社区准备讨论官方接口之前,这为过去4年的HTTP消息标准化提供了基础。欧宝体育平台怎么样促进互操作性是Symfony哲学的核心。ob娱乐下载
因此,我们激动的0.1版本HTTP消息桥接:一个可以转换Symfony的库ob娱乐下载请求
而且响应
对象转换为PSR-7兼容对象并返回。这意味着一旦有了为PSR-7编写的中间件,使用HttpFoundation的应用程序将是兼容的。
转换从PSR-7对象来HttpFoundation就像这样简单:
1 2 3 4 5 6 7 8 9 10 11
使用ob娱乐下载\桥\PsrHttpMessage\工厂\HttpFoundationFactory;$httpFoundationFactory=新HttpFoundationFactory ();//转换一个请求// $psrRequest是Psr\Http\Message\ServerRequestInterface的实例$ob娱乐下载symfonyRequest=$httpFoundationFactory->都会($psrRequest);//转换响应// $psrResponse是Psr\Http\Message\ResponseInterface的实例$ob娱乐下载symfonyResponse=$httpFoundationFactory->连接createResponse ($psrResponse);
你也可以转换从一个HttpFoundation对象到PSR-7。为此,桥使用DiactorosPSR-7的早期版本
12 3 4 5 6 7 8 9 10 11 12 13
使用ob娱乐下载\桥\PsrHttpMessage\工厂\DiactorosFactory;使用ob娱乐下载\组件\HttpFoundation\请求;使用ob娱乐下载\组件\HttpFoundation\响应;$psr7Factory=新DiactorosFactory ();//转换一个请求$ob娱乐下载symfonyRequest=请求::createFromGlobals ();$psrRequest=$psr7Factory->都会($ob娱乐下载symfonyRequest);//转换响应$ob娱乐下载symfonyResponse=新响应(“内容”);$psrResponse=$psr7Factory->连接createResponse ($ob娱乐下载symfonyResponse);
这使得项目可以立即利用PSR-7,但是不破坏向后兼容性.这很重要:Symfony有一个自豪的ob娱乐下载向后兼容承诺这是不会坏的。
非常感谢dunglas(核心团队成员),他为这个库做了大量的初始工作。欧宝官网下载app文档是在进行中桥目前有一些与大型请求和响应体相关的边缘情况。但这是个很好的开始,我们激动关于它。
Symfony框架中的RequestInterface和ResponseInterfaceob娱乐下载
在Symfonob娱乐下载y框架中,控制器通常接收Symfony的请求
对象,并返回一个Symfonyob娱乐下载响应
对象。但是现在,您可以选择接收和返回PSR-7请求和响应对象,这要感谢SensioFrameworkExtraBundle:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
名称空间AppBundle\控制器;使用Psr\Http\消息\ServerRequestInterface;使用ob娱乐下载\包\FrameworkBundle\控制器\控制器;使用Zend\Diactoros\响应;类DefaultController扩展控制器{公共函数indexAction(ServerRequestInterface$请求){//与PSR-7请求交互$响应=新反应();//与PSR-7响应交互返回$响应;}}
这可以在最新版本的sensioframeworkextrabundance中获得,它与Symfony(2.3+)的每个维护版本兼容。ob娱乐下载所以如果这是你想在你的控制器中做的事情,你可以立即开始做!
评论
在两种情况下,性能会成为一个问题(至少现在):转换大型请求/响应主体流和处理大型文件上传。
干杯!
以及一个简单应用程序的基准测试(也包括在上面的帖子中):https://blackfire.io/profiles/compare/6af13ebb-de9c-453f-9d87-681bf416eeac/graph
干杯!
一如既往,谢谢你的出色工作!:)
Thomas Lallement is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now