woody / http-message
dev-master
2019-01-07 23:52 UTC
Requires
- php: ^7.1
- guzzlehttp/guzzle: ^6.3
- psr/http-message: ^1.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-29 04:48:55 UTC
README
实现了 PSR-7 PHP 标准。
演示
对于 Swoole 和 Symfony,在 request
和 response
对象上,都没有实现 PSR-7,这是与 PSR-15 协作所必需的。
只有 Guzzle 正确实现了它。
这个库在 Swoole 和 PSR-7 实现之间建立了一座桥梁。
实现
Swoole 服务器
include 'vendor/autoload.php'; use Swoole\Http\Request; use Swoole\Http\Response; use Swoole\Http\Server; use Woody\Http\Message\ServerRequest; $server = new Server('0.0.0.0', 9501); $server->on('request', function (Request $swooleRequest, Response $swooleResponse) { $request = ServerRequest::createFromSwoole($swooleRequest); // ... $response = new \Woody\Http\Message\Response(200, [], 'Hello World'); $response = $response->withHeader('Server', 'My Server Name'); // ... \Woody\Http\Message\Response::send($response, $swooleResponse); }); $server->start();
Swoole 和 中间件
include 'vendor/autoload.php'; use Swoole\Http\Request; use Swoole\Http\Response; use Swoole\Http\Server; use Woody\Http\Message\ServerRequest; use Woody\Http\Server\Middleware\Dispatcher; $server = new Server('0.0.0.0', 9501); $server->on('request', function (Request $swooleRequest, Response $swooleResponse) { $request = ServerRequest::createFromSwoole($swooleRequest); $dispatcher = new Dispatcher(); $dispatcher->pipe(new LogMiddleware()); $dispatcher->pipe(function($request, $dispatcher) { $response = new \Woody\Http\Message\Response(200, [], 'Hello World'); $response = $response->withHeader('Server', 'My Server Name'); return $response; }); $response = $dispatcher->handle($request); \Woody\Http\Message\Response::send($response, $swooleResponse); }); $server->start();