PSR-7桥
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.3,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
PSR-7桥
PSR-7桥转换HttpFoundation类定义的实现HTTP消息接口的对象PSR-7.
安装
1
$Composer需要symfonyob娱乐下载/psr-http-message-bridge
请注意
如果在Symfony应用程序外部安装此组件,则必须要求ob娱乐下载供应商/ autoload.php
文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。
桥上还需要一个PSR-7PSR-17实现将HttpFoundation对象转换为PSR-7对象。下面的命令安装nyholm / psr7
库,一个轻量级和快速的PSR-7实现,但您可以使用任何实现psr/http-factory-implementation的库:
1
$作曲家需要nyholm/psr7
使用
从HttpFoundation对象转换到PSR-7
桥接器提供了一个名为HttpMessageFactoryInterface它从HttpFoundation对象构建实现PSR-7接口的对象。
下面的代码片段解释了如何转换请求到一个Nyholm \ Psr7 \ ServerRequest
类实现Psr \ Http \ \ ServerRequestInterface消息
接口:
1 2 3 4 5 6 7 8 9 10
使用Nyholm\Psr7\工厂\Psr17Factory;使用ob娱乐下载\桥\PsrHttpMessage\工厂\PsrHttpFactory;使用ob娱乐下载\组件\HttpFoundation\请求;$ob娱乐下载symfonyRequest=新请求([],[],[],[],[],[],[],[“HTTP_HOST”= >“dunglas.fr”),“内容”);//必须设置HTTP_HOST服务器密钥以避免意外错误$psr17Factory=新Psr17Factory ();$psrHttpFactory=新PsrHttpFactory ($psr17Factory,$psr17Factory,$psr17Factory,$psr17Factory);$psrRequest=$psrHttpFactory->都会($ob娱乐下载symfonyRequest);
现在从a响应到一个Nyholm \ Psr7 \响应
类实现Psr \ Http \ \ ResponseInterface消息
接口:
1 2 3 4 5 6 7 8 9
使用Nyholm\Psr7\工厂\Psr17Factory;使用ob娱乐下载\桥\PsrHttpMessage\工厂\PsrHttpFactory;使用ob娱乐下载\组件\HttpFoundation\响应;$ob娱乐下载symfonyResponse=新响应(“内容”);$psr17Factory=新Psr17Factory ();$psrHttpFactory=新PsrHttpFactory ($psr17Factory,$psr17Factory,$psr17Factory,$psr17Factory);$psrResponse=$psrHttpFactory->连接createResponse ($ob娱乐下载symfonyResponse);
将实现PSR-7接口的对象转换为HttpFoundation
另一方面,桥接器提供了一个名为HttpFoundationFactoryInterface它从实现PSR-7接口的对象构建HttpFoundation对象。
方法的对象转换Psr \ Http \ \ ServerRequestInterface消息
接口请求实例:
1 2 3 4 5 6
使用ob娱乐下载\桥\PsrHttpMessage\工厂\HttpFoundationFactory;// $psrRequest是Psr\Http\Message\ServerRequestInterface的实例$httpFoundationFactory=新HttpFoundationFactory ();$ob娱乐下载symfonyRequest=$httpFoundationFactory->都会($psrRequest);
方法实现的对象Psr \ Http \ \ ResponseInterface消息
到一个响应实例:
1 2 3 4 5 6
使用ob娱乐下载\桥\PsrHttpMessage\工厂\HttpFoundationFactory;// $psrResponse是Psr\Http\Message\ResponseInterface的实例$httpFoundationFactory=新HttpFoundationFactory ();$ob娱乐下载symfonyResponse=$httpFoundationFactory->连接createResponse ($psrResponse);