lawondyss / router
一个小型PHP库,用于创建应用程序路由。使用时请自行承担风险,此库仅用于我的教育目的。
dev-master / 1.0.x-dev
2020-02-17 10:56 UTC
Requires
- php: >=7.4
- nette/utils: 3.1.*
Requires (Dev)
- nette/http: 3.0.*
- tracy/tracy: 2.7.*
This package is auto-updated.
Last update: 2024-09-17 21:21:17 UTC
README
用于创建REST API的简单PHP库。
需求
严格需要PHP 7.4
安装
通过Composer: composer require lawondyss/router
使用
简单实例化。
use Lawondyss\Sandy\Router\Router; require_once __DIR__ . '/vendor/autoload.php'; $router = new Router;
无静态。为什么?
定义路由
为HTTP方法(s)和URL路径(作为掩码)添加路由。回调可以处理请求并编辑响应。
// predefined HTTP method $router->get('/', function (Request $request, Response $response) { $response->body = 'Hello world'; }); // predefined HTTP method $router->post('/foo/bar', function(Request $request, Response $response) { $response->code = Response::S201_CREATED; }); // own definition of valid HTTP methods (PUT and PATCH) $router->add(Router::PUT | Router::PATCH, '/foo/bar', function (Request $request, Response $response) { $response->code = Response::S204_NO_CONTENT; $response->addHeader('X-Lipsum-Message', 'Lorem ipsum dolor sit amet'); });
掩码中的参数
要捕获URL的片段,请使用 {
和 }
。
URL的可选片段在 [
和 ]
之间。
捕获片段的正则表达式验证定义在 :
之后。
所有捕获的片段都在 Request::$params
中。
$router->get('/foo/{bar:\d+}[/{baz:[a-z]+}]', function(Request $request, Response $response) { $response->contentType = 'application/json'; $response->body = json_encode($request->params); });
动机
主要是为了我的教育目的。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。