denosyscore/routing

DenosysCore: 带有PSR-15中间件支持的快速PSR-7路由和调度器PHP包

v0.1.0 2024-05-27 15:57 UTC

This package is auto-updated.

Last update: 2024-09-27 23:35:25 UTC


README

这是一个针对PHP的高效灵活的路由包,旨在支持现代Web应用程序,具有最小开销。

特性

  • 快速路由匹配:利用trie数据结构进行高效的路线匹配。
  • 灵活的处理程序:支持各种类型的处理程序(闭包、数组、字符串)。
  • PSR-7兼容:与PSR-7 HTTP消息接口兼容。
  • PSR-15中间件支持:允许将中间件附加到路由上。
  • 可定制的调用策略:定义如何调用路由处理程序。
  • 依赖注入:与PSR-11容器集成,实现自动依赖解析。
  • 动态和静态路由:轻松定义和处理动态和静态路由。

需求

  • PHP 8.1或更高版本

用法

使用Composer安装此包

composer require denosyscore/routing

安装PSR-7实现,例如Laminas Diactoros

composer require laminas/laminas-diactoros

以下是一个如何定义路由和处理请求的简单示例

// Create a new router instance
$router = new Denosys\Routing\Router();

// Define a route
$router->get('/', function (): ResponseInterface {
    $response = new Laminas\Diactoros\Response();
    $response->getBody()->write('Hello, World!');
    return $response;
});

// Create Request
$request = Laminas\Diactoros\ServerRequestFactory::fromGlobals();

// Dispatch the request
$response = $router->dispatch($request);

// Output the response
echo $response->getBody();

添加路由

您可以使用各种HTTP方法添加路由

$router->get('/user/{id}', 'UserController@show');
$router->post('/user', 'UserController@store');
$router->put('/user/{id}', 'UserController@update');
$router->delete('/user/{id}', 'UserController@destroy');
$router->patch('/user/{id}', 'UserController@patch');
$router->options('/user', 'UserController@options');
$router->any('/any-method', 'AnyController@handle');

完整文档即将推出...

贡献

请参阅CONTRIBUTING以获取详细信息。

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。