denosyscore / routing
DenosysCore: 带有PSR-15中间件支持的快速PSR-7路由和调度器PHP包
v0.1.0
2024-05-27 15:57 UTC
Requires
- php: ^8.1
- psr/container: ^2.0
- psr/http-factory: ^1.1
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- laminas/laminas-diactoros: ^3.3
- laminas/laminas-httphandlerrunner: ^2.10
- php-di/php-di: ^7.0
- symfony/var-dumper: ^7.0
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)。请参阅许可文件以获取更多信息。