thruster / http-router
Thruster HttpRouter 组件(基于 PSR-7 和 FastRoute 的路由器)
1.1.0
2016-05-31 12:04 UTC
Requires
- php: >=7.0
- nikic/fast-route: >=0.7.0,<1.0.0
- psr/http-message: ~1.0
- thruster/promise: ^1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-09-14 02:53:19 UTC
README
[] (https://github.com/ThrusterIO/http-router/releases) [
] (LICENSE) [
] (https://travis-ci.org/ThrusterIO/http-router) [
] (https://scrutinizer-ci.com/g/ThrusterIO/http-router) [
] (https://scrutinizer-ci.com/g/ThrusterIO/http-router) [
] (https://packagist.org.cn/packages/thruster/http-router)
Thruster HttpRoute 组件。基于 PSR-7 和 FastRoute 的简单路由器。
安装
通过 Composer
$ composer require thruster/http-router
用法
独立使用
<?php use Psr\Http\Message\RequestInterface; use Thruster\Component\HttpRouter\Router; use Thruster\Component\HttpRouter\RouteProvider; $application = new class implements RouteProvider { public function getRoutes() : array { return [ 'hello_world' => ['GET', '/', 'hello'], ['POST', '/', [$this, 'foo']] ]; } public function hello(ServerRequestInterface $request) { // return new Response(200, [], 'Hello world'); } public function foo(ServerRequestInterface $request) { // return new Response(404, [], 'Foo Bar'); } }; $router = new Router($application); $response = $router->handleRequest(ServerRequest::fromGlobals()); // PSR-7 Response
PSR-7 风格的中间件
<?php use Psr\Http\Message\RequestInterface; use Thruster\Component\HttpRouter\Router; use Thruster\Component\HttpRouter\RouteProvider; use Thruster\Component\HttpRouter\RouteHandler; $application = new class implements RouteProvider, RouteHandler { public function getRoutes() : array { return [ 'hello_world' => ['GET', '/', 'hello'], ['POST', '/', [$this, 'foo']] ]; } public function handleRoute( ServerRequestInterface $request, ResponseInterface $response, callable $actionHandler ) : ResponseInterface { // ... call actionHandler and return ResponseInterface } public function handleRouteMethodNotAllowed( ServerRequestInterface $request, ResponseInterface $response, array $allowedMethods ) : ResponseInterface { // ... handle method not allowed error } public function handleRouteNotFound( ServerRequestInterface $request, ResponseInterface $response ) : ResponseInterface { // ... handle route not found (404) } }; $router = new Router($application, $application); $response = $router(ServerRequest::fromGlobals(), new Response()); // PSR-7 Response
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CONDUCT 以获取详细信息。
许可证
请参阅许可文件获取更多信息。