borschphp/router

一个FastRoute路由实现。

2.1.1 2024-01-19 13:57 UTC

README

PHP Composer Latest Stable Version License

Borsch Router

一个基于nikic/fast-route请求路由器的出色的FastRoute路由实现。


目录
  1. 关于项目
  2. 入门指南
  3. 使用
  4. 测试
  5. 贡献
  6. 许可证
  7. 感谢

关于项目

一个FastRoute路由实现,灵感来源于优秀的Mezzio路由接口
该路由器基于nikic/fastroute请求路由器。

您需要提供一个PSR-7 ServerRequestInterface以匹配路由。
路由处理器必须返回一个PSR-7 ResponseInterface。

(返回顶部)

入门指南

先决条件

要使用Borsch\Router,您需要PHP >= 8.1,但始终建议使用最新稳定的PHP版本。

它还需要PSR-7 HTTP消息的实现。
在测试和以下示例中使用了Laminas Diactoros项目。

安装

通过composer

composer require borschphp/router

(返回顶部)

使用

require_once __DIR__.'/vendor/autoload.php';

$router = new \Borsch\Router\FastRouteRouter();

$router->addRoute(new \Borsch\Router\Route(
    ['GET'],
    '/articles/{id:\d+}[/{slug}]',
    new ArticleHandler(), // Instance of RequestHandlerInterface
    'articles.id.title'
));

$server_request = \Laminas\Diactoros\ServerRequestFactory::fromGlobals();

// $route_result is an instance of RouteResultInterface
$route_result = $router->match($server_request);

// $route is an instance of RouteInterface (or false if no match)
$route = $route_result->getMatchedRoute();
if (!$route) {
    return new \Laminas\Diactoros\Response('Not Found', 404);
}

// $response is an instance of ResponseInterface
$response = $route->getHandler()->handle($server_request);

// Send the response back to the client or other...

(返回顶部)

测试

此包使用Pest作为测试框架。
要运行测试

./vendor/bin/pest tests

还使用了突变测试来创建此包,使用Infection
有关Infection页面的更多信息。
要运行突变测试,请按文档中的说明安装infection,然后运行以下命令

XDEBUG_MODE=coverage infection

将在项目文件夹中生成基于文本和HTML的报告。

(返回顶部)

贡献

贡献使开源社区成为一个学习、灵感和创造的地方。您做出的任何贡献都非常欢迎

如果您有改进此项目的建议,请分支存储库并创建一个pull请求。您也可以简单地创建一个带有“增强”标签的问题。别忘了给项目加星!再次感谢!

  1. 分支项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开Pull Request

(返回顶部)

许可证

在MIT许可证下分发。有关更多信息,请参阅许可证文件

(返回顶部)

感谢

感谢以下项目为此项目的灵感或因为它们被用于其中

(返回顶部)