lawondyss/router

一个小型PHP库,用于创建应用程序路由。使用时请自行承担风险,此库仅用于我的教育目的。

dev-master / 1.0.x-dev 2020-02-17 10:56 UTC

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)。有关更多信息,请参阅许可证文件