ThinkPHP的中间件可以在应用的配置文件中进行配置和使用。在ThinkPHP的应用配置文件config.php中,有一个middleware配置项,可以将需要使用的中间件进行配置。比如:
return [
// 其他配置项
// 中间件配置
'middleware' => [
// '中间件名' => '中间件路径/类名'
'auth' => app\middleware\Auth::class,
],
];
在上面的示例中,我们配置了一个名为auth的中间件,对应的类为app\middleware\Auth。中间件类的编写规则也比较简单,只需要包含一个handle方法即可,该方法接收两个参数$request和$next,分别代表请求对象和下一个中间件。
namespace app\middleware;
class Auth
{
public function handle($request, \Closure $next)
{
// 在请求处理之前执行的代码
$response = $next($request);
// 在请求处理之后执行的代码
return $response;
}
}
在控制器中使用中间件也很简单,只需要在控制器的$middleware属性中进行配置即可。
namespace app\controller;
use think\Controller;
class Index extends Controller
{
// 中间件配置
protected $middleware = ['auth'];
public function index()
{
return 'Hello, ThinkPHP!';
}
}
在上面的示例中,我们将auth中间件应用到了Index控制器中的所有方法上。当访问Index控制器的任何一个方法时,都会先执行auth中间件的handle方法。