xel / psr7bridge
该包最新版本(0.1.5)没有可用的许可信息。
0.1.5
2024-03-24 14:13 UTC
Requires
- php: >=8.2
- dflydev/fig-cookies: ^3.1
- nyholm/psr7: ^1.8
- psr/http-factory: ~1.0
- psr/http-message: ~1.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-09-24 15:22:23 UTC
README
Swoole Psr7 Bridge
这个库目前还不适用于生产环境。这个库的想法是在需要时处理 Swoole Http 响应并将其复制到 psr 7 标准,并利用这个副本通过 Psr 17 工厂。在响应中,当响应内容有更大的字节值时,它将进行分割并使其成为块,以便更轻松地发送。
探索文档
查看演示 . 报告错误 . 请求功能
入门指南
要开始使用这个库,你需要以下先决条件
先决条件
- ext-swoole => V 5.0.0
- php => V 8.2
安装
- 使用以下命令安装
composer require xel/psr7bridge
使用方法
- 在 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();
有关更多示例,请参阅 文档