alexpts / psr15-next
PSR-7 和 PSR-15 的路由器
0.5.0
2020-12-01 19:27 UTC
Requires
- php: ~8.0
- alexpts/php-simple-events: ^5.0
- alexpts/php-tools: ^4.0
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- alexpts/mutable-psr7: ^0.1
- alexpts/psr15-middlewares: ^2.0
- blackfire/php-sdk: ^1.23
- phpunit/phpunit: ^9.4
README
PSR-15 中间件的运行器。
- 带 URL 生成的命名路由
- 对
OPTIONS
请求返回允许的方法 - 多路由中间件
- 多路由器
- 可嵌套的路由器
- PSR-15 中间件
- PSR-7 请求/响应
- 灵活的优先级(低级)
- 动态端点(低级)
use Psr\Http\Message\ServerRequestInterface; use PTS\NextRouter\Resolver\LayerResolver; use PTS\NextRouter\Next; use PTS\PSR15\Middlewares\ErrorToJsonResponse; use PTS\ParserPsr7\SapiEmitter; use PTS\Psr7\Factory\Psr17Factory; use PTS\Psr7\Response\JsonResponse; require_once '../vendor/autoload.php'; $psr17Factory = new Psr17Factory; $app = new Next; $app->getRouterStore() ->get('/hello', function (ServerRequestInterface $request, $next) { return new JsonResponse(['message' => 'Hello world'], 200); }) ->use(function (ServerRequestInterface $request, $next) { return new JsonResponse(['message' => 'otherwise']); }); $request = $psr17Factory->fromGlobals(); $response = $app->handle($request); (new SapiEmitter)->emit($response);
安装
composer require alexpts/psr15-next