legatus/router

一个快速且可组合的中间件路由器,灵感来源于 Express.js

0.3.1 2021-02-12 12:38 UTC

This package is auto-updated.

Last update: 2024-09-12 20:23:59 UTC


README

一个快速且可组合的中间件路由器,灵感来源于 Express.js

Type Coverage Mutation testing badge

安装

您可以使用Composer安装路由器组件

composer require legatus/router

快速开始

<?php
declare(strict_types=1);

use Legatus\Http\Router;
use Legatus\Http\RoutingContext;
use Legatus\Http\RoutingContextError;
use Psr\Http\Message\ResponseInterface as Resp;
use Psr\Http\Message\ServerRequestInterface as Req;
use function Legatus\Http\handle_func;

/**
 * @param Req $req
 * @return Resp
 * @throws RoutingContextError
 */
function show_user(Req $req): Resp {
    $id = RoutingContext::of($req)->getParam('id');
    return new Nyholm\Psr7\Response(200, [], 'Hello User ' . $id);
}

$router = new Router();
$router->get('/users/:id', handle_func('show_user'));

$request = new Nyholm\Psr7\ServerRequest('GET', '/users/1');
$response = $router->handle($request);

echo $response->getBody() . PHP_EOL; // Hello User 1

更多详情,您可以在此处查看在线文档

项目状态及发布流程

虽然这个库仍在开发中,但它经过充分测试,应该足够稳定,可以在生产环境中使用。

当前的版本号为0.x.y。当引入非破坏性变更(添加新方法、优化现有代码等)时,y会增加。

当引入破坏性变更时,总是从新的0.x版本周期开始。

因此,将项目锁定到给定的版本周期(如0.2.*)是安全的。

如果您需要升级到较新的版本周期,请查看发布历史,了解每个进一步0.x.0版本引入的变更列表。

社区

我们还没有社区频道。如果您想帮助建立它,请告诉我!

贡献

阅读贡献指南,了解您如何为 Legatus 做出贡献。

安全问题

请通过电子邮件私下报告安全问题,并在披露前给我们一段宽限期。

关于 Legatus

Legatus 是由 Matías Navarro Carter 领导的个人开源项目,并由贡献者开发。