bronsted/psr-http
Composer 安装命令:
composer require bronsted/psr-http
包简介
Psr-http
README 文档
README
This is a http server and client package with PSR interfaces, so it can be used with frameworks which uses PSR interface. It is build with FiberLoop which is coroutines build on php fibers.
Install
You can install this package via Composer:
composer install bronsted\psr-http
Usage
Server usage:
<?php require __DIR__ . '/vendor/autoload.php'; use bronsted\HttpServer; use Nyholm\Psr7\Factory\Psr17Factory; use Psr\Http\Message\ServerRequestInterface; $factory = new Psr17Factory(); $server = new HttpServer('0.0.0.0', 8000, $factory, $factory, $factory, $factory, $factory); $server->run(function (ServerRequestInterface $request) use ($factory) { $response = $factory->createResponse(); $path = $request->getUri()->getPath(); if ($path == '/') { $params = $request->getQueryParams(); $response->getBody()->write('Hello ' . (empty($params) ? 'world' : $params['name'])); } else { $response = $response->withStatus(404); } return $response; });
Standalone client usage context:
<?php require __DIR__ . '/vendor/autoload.php'; use bronsted\HttpClient; use bronsted\FiberLoop; use Nyholm\Psr7\Factory\Psr17Factory; FiberLoop::instance()->defer(function() use($argv) { $factory = new Psr17Factory(); $request = $factory->createRequest('GET', $argv[1]); $client = new HttpClient($factory); $response = $client->sendRequest($request); echo $response->getStatusCode() . PHP_EOL; echo $response->getBody()->getContents() . PHP_EOL; }); FiberLoop::instance()->run();
Bugs and improvements
Report bugs in GitHub issues or feel free to make a pull request :-)
License
MIT
统计信息
- 总下载量: 37
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-03-10