agungsugiarto / codeigniter4-psr7bridge
CodeIgniter 4 PSR HTTP消息桥
v1.0.0-beta.2
2023-01-06 05:07 UTC
Requires
- php: ^7.2
- codeigniter4/framework: ^4.2
- psr/http-message: ^1.0
Requires (Dev)
- laminas/laminas-diactoros: ^2.17
- nyholm/psr7: ^1.5
- php-http/psr7-integration-tests: ^1.0
Suggests
- : laminas-diactoros is a PHP package containing implementations of the PSR-7 HTTP message interfaces and PSR-17 HTTP message factory interfaces.
- nyholm/psr7: For a super lightweight PSR-7/17 implementation
This package is auto-updated.
Last update: 2024-09-06 11:48:49 UTC
README
PSR-7 桥
PSR-7 桥可以将codeigniter4-http对象从实现PSR-7定义的HTTP消息接口的对象中转换过来,也可以转换过去。
目录
安装
$ composer require agungsugiarto/codeigniter4-psr7bridge
该桥还需要一个PSR-7和PSR-17实现,以将IncomingRequest
对象转换为PSR-7对象。以下命令安装了轻量级且快速的PSR-7实现库nyholm/psr7
。
$ composer require nyholm/psr7
使用
从IncomingRequest对象转换为PSR-7
该桥提供了一个工厂接口,称为Fluent\HttpMessageBridge\Interfaces\HttpMessageFactoryInterface
,可以从IncommingRequest
对象构建实现PSR-7接口的对象。
以下代码片段解释了如何将CodeIgniter\HTTP\IncomingRequest
转换为实现Psr\Http\Message\ServerRequestInterface
接口的Nyholm\Psr7\ServerRequest
类
<?php use CodeIgniter\Config\Services; use Fluent\HttpMessageBridge\PsrHttpFactory; use Nyholm\Psr7\Factory\Psr17Factory; $requestCodeIgniter = Services::request(); $psr17Factory = new Psr17Factory(); $psrHttpFactory = new PsrHttpFactory($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory); $psrRequest = $psrHttpFactory->createRequest($requestCodeIgniter);
现在从CodeIgniter\HTTP\Response
转换为实现Psr\Http\Message\ResponseInterface
接口的Nyholm\Psr7\Response
类
<?php use CodeIgniter\HTTP\Response; use Fluent\HttpMessageBridge\PsrHttpFactory; use Nyholm\Psr7\Factory\Psr17Factory; $responseCodeIgniter = new Response(config('App')); $psr17Factory = new Psr17Factory(); $psrHttpFactory = new PsrHttpFactory($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory); $psrResponse = $psrHttpFactory->createResponse($responseCodeIgniter);
许可协议
在MIT许可下发布,请参阅LICENSE。