leinc / minichan-router

一个最小化的路由器,可以集成到任何项目中。

安装: 8

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:工具

dev-main 2023-11-25 15:56 UTC

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();