Skip to main content

路由中间件

一、路由前置中间件

1.1 注册中间件

app/middleware 目录下随意创建一个类,继承 Middleware 类接口,必须实现 handle 方法:

示例
<?php
namespace app\middleware;

use core\base\Middleware;

class CheckUser implements Middleware
{
public function handle()
{
echo '我是中间件,在这儿可以进行业务处理'."<br/>";
}
}

1.2 注册前置中间件的路由

config/api.php 中注册:在 config/api.php 中注册:

示例
<?php
use core\route\Route;

Route::any('/v1/demo', 'v1/Demo/demo')->beforeMiddleware(new \app\middleware\CheckUser());

1.3 控制器

app/controllers/v1/DemoController.php 文件:

示例
<?php

namespace app\controllers\v1;

use core\base\Controller;

class DemoController extends Controller
{
public function demo()
{
echo '写代码的光头强!';
}
}

1.4 测试

地址栏访问:http://youdomain/v1/demo,输出:

图片alt

二、路由后置中间件

2.1 注册中间件

app/middleware 目录下随意创建一个类,继承 Middleware 类接口,必须实现 handle 方法:

示例
<?php
namespace app\middleware;

use core\base\Middleware;

class CheckUser implements Middleware
{
public function handle()
{
echo '我是中间件,在这儿可以进行业务处理'."<br/>";
}
}

1.2 注册后置中间件的路由

config/api.php 中注册:在 config/api.php 中注册:

示例
<?php
use core\route\Route;

Route::any('/v1/demo', 'v1/Demo/demo')->afterMiddleware(new \app\middleware\CheckUser());

1.3 控制器

app/controllers/v1/DemoController.php 文件:

示例
<?php

namespace app\controllers\v1;

use core\base\Controller;

class DemoController extends Controller
{
public function demo()
{
echo '写代码的光头强!'."<br/>";
}
}

1.4 测试

地址栏访问:http://youdomain/v1/demo,输出:

图片alt