leinc / minichan-router
一个最小化的路由器,可以集成到任何项目中。
dev-main
2023-11-25 15:56 UTC
Requires (Dev)
- phpunit/phpunit: 10.4.x-dev
This package is auto-updated.
Last update: 2024-09-25 17:41:07 UTC
README
一个最小化的路由器。
安装
$ composer require leinc/minichan-router
使用方法
您可以使用此路由器如下
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/',function (Request $request){ echo "Hello World"; }); Router::get('/foo',function (Request $request){ echo "foo route"; }); Router::executeRoutes();
使用控制器代替回调函数
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/foo/create',[FooController::class,'create']); Router::post('/foo',[FooController::class,'store']); Router::executeRoutes();
然而您仍然可以使用动态路由参数
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/bar/{id}',function (Request $request){ echo $request->params()->id; }); Router::get('/foo/{file}',function (Request $request){ echo $request->params()->file; })->where('/foo\/[a-z]+/'); Router::executeRoutes();
请求方法
您只能使用以下请求方法来处理您的API
GET,POST,PUT,PATCH,DELETE,OPTION
中间件
例如,创建一个名为AuthMiddleware的类来实现IMiddleware契约
<?php class AuthMiddleware implements IMiddleware { public function handle(IRequest $request,Callable $next) { if(!isset($_SESSION['admin']) && $_SESSION['admin'] !== 'test'){ header("Location:/"); exit(); } $next($request); } }
创建中间件后,您应该在路由器上注册它
<?php require __DIR__ . "/vendor/autoload.php"; Router::get('/foo',function (Request $request){ // your code })->middleware([AuthMiddleware::class]); Router::executeRoutes();