marrios/router

路由管理器

v2.2.3 2023-07-07 19:03 UTC

This package is auto-updated.

Last update: 2024-09-16 18:17:58 UTC


README

Total Downloads Latest Stable Version License

@marriosdev

Marrios/Router

HTTP 路由管理器,适用于 MVC 项目

如果您发现任何错误,您可以通过 PR 打开


指南

开始

25 - 安装

composer require marrios/router

26 - 使用函数

   
use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Set route
$router->get("/helloworld", [function(){ echo "Hello World!";}])->run();
$router->notFound();

当访问 /helloworld 路由时

   Hello World!

28 - 使用控制器

use App\Controllers\TesteController;

use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Set route
$router->post("/helloworld", [TesteController::class, "helloWorld"])->run();
$router->notFound();

当访问 /helloworld 路由时

   Hello World!

参数

使用动态参数

动态参数使用大括号 { } 定义

* 注意:在定义动态路由时,您必须在回调函数或控制器方法中添加一个参数


以下示例使用 CallBack

use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Set route
$router->post("/blog/{category}/{id_post}", [ function($param){ echo $param->category;}])->run();
$router->notFound();

当访问 /blog/video/1323 路由时

   video

以下示例使用 Controller

use Marrios\Router\HttpRouter;

$router = new HttpRouter();

// Instantiating the route object
$router = new Router();

// Set route
$router->get("/blog/{category}/{id_post}", [TesteController::class, "helloWorld"])->run();
$router->notFound();

您的控制器应该如下所示

class TesteController
{
    public function helloWorld($param)
    {
        echo $param->id_post;
    }
}

当访问 /blog/video/1323 路由时

   1323

路由分组

实现路由分组

分组

$router->group([
    $router->get("ok",  [function () {echo "Hello";}])->run(),
    $router->get("ok2",  [function () {echo "Hello 2";}])->run()
]);

带有中间件的路由分组

$router->middleware([Middleware::class])->group([
    $router->get("ok",  [function () {echo "Hello";}])->run(),
    $router->get("ok2",  [function () {echo "Hello 2";}])->run()
]);

访问日志

启用日志并定义日志存储的位置。注意:此行必须在文件开头定义

$router->logs(logs: true)->setStorageLogs(__DIR__);