razonyang / psr7-swoole
Swoole 的 PSR-7 实现
1.0.0
2022-09-18 07:05 UTC
Requires
- php: ^8.0
- ext-swoole: ^4.8|^5.0
- nyholm/psr7: ^1.5
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- razonyang/swoole-unit: ^1.0
- razonyang/unit-helper: ^1.0
- swoole/ide-helper: ^5.0
This package is auto-updated.
Last update: 2024-09-24 12:59:53 UTC
README
Swoole 的 PSR-7 辅助工具,是 Swoole 和 PSR 事物(如 PSR-7 HTTP 消息、PSR-15 处理器和 PSR-15 中间件)的桥梁。它允许将 Swoole 集成到 PSR 兼容框架中,以加快您的应用程序。
- 将
Swoole\Http\Request
转换为Psr\Http\Message\ServerRequestInterface
。 - 将
Psr\Http\Message\ResponseInterface
发出到Swoole\Http\Response
。
安装
composer require razonyang/psr7-swoole --prefer-dist
使用方法
<?php declare(strict_types=1); require __DIR__ . '/vendor/autoload.php'; use Nyholm\Psr7\Factory\Psr17Factory; use Nyholm\Psr7\Stream; use RazonYang\Psr7\Swoole\EmitterFactory; use RazonYang\Psr7\Swoole\ServerRequestFactory; use Swoole\Coroutine\Http\Server; use function Swoole\Coroutine\run; run(function () { $serverRequestFactory = new ServerRequestFactory(); $emitterFactory = new EmitterFactory(); $psr7Factory =new Psr17Factory(); $server = new Server('127.0.0.1', 9501, false); $server->handle('/', function ($request, $response) use ($emitterFactory, $serverRequestFactory, $psr7Factory) { $emitter = $emitterFactory->create($response); $psrRequest = $serverRequestFactory->create($request); $psrResponse = $psr7Factory ->createResponse(200) ->withBody(Stream::create($psrRequest->getUri()->getPath())); $emitter->emit($psrResponse); }); $server->start(); });