xel/psr7bridge

该包最新版本(0.1.5)没有可用的许可信息。

0.1.5 2024-03-24 14:13 UTC

This package is auto-updated.

Last update: 2024-09-24 15:22:23 UTC


README


Swoole Psr7 Bridge

这个库目前还不适用于生产环境。这个库的想法是在需要时处理 Swoole Http 响应并将其复制到 psr 7 标准,并利用这个副本通过 Psr 17 工厂。在响应中,当响应内容有更大的字节值时,它将进行分割并使其成为块,以便更轻松地发送。

探索文档

查看演示 . 报告错误 . 请求功能

Downloads Contributors Forks Stargazers Issues License

入门指南

要开始使用这个库,你需要以下先决条件

先决条件

  • ext-swoole => V 5.0.0
  • php => V 8.2

安装

  1. 使用以下命令安装
     composer require xel/psr7bridge

使用方法

  1. 在 server.php 或包含 Swoole 服务器的文件中
     <?php

use HttpSoft\Message\ServerRequestFactory;
use HttpSoft\Message\StreamFactory;
use HttpSoft\Message\UploadedFileFactory;
use HttpSoft\Message\ResponseFactory;
use Swoole\Http\Server;
use Swoole\Http\Request as SwooleRequest;
use Swoole\Http\Response as SwooleResponse;
use Xel\Psr7bridge\PsrFactory;


require __DIR__."/vendor/autoload.php";

$server = new Server("0.0.0.0", 9501, SWOOLE_PROCESS, SWOOLE_SOCK_TCP);

$server->set([
    "worker_num" => 35,
    "dispatch_mode" => 1
]);

/***
 * In this sample using Psr7 and Psr17 Provided by HttpSoft.
 * u can u other library to utilize this
 */
$psr7RequestFactory =  new PsrFactory
(
    new ServerRequestFactory(),
    new StreamFactory(),
    new UploadedFileFactory(),

);

$psr7Response = new ResponseFactory();
$psr7Stream =  new StreamFactory();

$server->on("request" , function (SwooleRequest $request, SwooleResponse $response) use ($psr7RequestFactory,$psr7Response, $psr7Stream){

    // ? Connect Swoole http request with Psr 17 factory
    $psr7RequestFactory->connectRequest($request);

    // ? Sample data in stream
    $data = $psr7Stream->createStream("Hello Swoole");
    
    // ? create response and
    $manage = $psr7Response->createResponse();
    $manage =  $manage->withBody($data);
    $manage = $manage->withStatus(200);
    
    // ?  bridge it to psr7
    $psr7RequestFactory->connectResponse($manage, $response);
});

$server->start();

有关更多示例,请参阅 文档