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方法。