agungsugiarto/codeigniter4-psr7bridge

CodeIgniter 4 PSR HTTP消息桥

v1.0.0-beta.2 2023-01-06 05:07 UTC

This package is auto-updated.

Last update: 2024-09-06 11:48:49 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

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