從一個簡單的小例子入門ThinkPHP6的中間件

從thinkphp6開始,一個叫做“中間件”的名詞出現在了官方手冊中,那么中間件是用來干什么的?又應該如何使用呢?下面咱們慢慢分析。

首先看下中間件官網的定義:

中間件主要用于攔截或過濾應用的 http 請求,并進行必要的業務處理。

從字面意思上不難理解,中間件就是在我們請求控制器的方法之前,中間件就可以攔截或者做其他的事情。

我們在www.blog.com中的index控制中的index方法中就寫一行代碼:

echo?"index方法";

我們來測試下定義了中間件會有什么事情發生?

立即學習PHP免費學習筆記(深入)”;

一、中間件的定義

我們下載好ThinkPHP6框架后,在app下有middleware.php,這個文件就是中間件的定義文件,我們注意下它的位置,它沒有放在任何應用下面,而是在app下面和BaseController.php是相同目錄的,因此它是一個全局中間件。

定義中間件很簡單,我們有兩個方法:

1、用命令行。php think make:middleware Check。這個使用后的感受就一個字:快!真快!中間件定義瞬間完成。

2、復制粘貼,我們在app下建立middleware目錄,并且建立一個?Check.php的中間件:

<?php namespace appmiddleware; class Check {     public function handle($request, Closure $next)     {         echo "app中間件";         return $next($request);     } }

中間件定義完了,為啥沒生效?

按照上面的中間件定義步驟,中間件定義完成,但是并沒有生效,是什么原因呢?

原因是沒有在配置文件中啟動。如何操作?

打開appmiddleware.php,在最小面添加如下代碼:

appmiddlewareCheck::class

我們再次訪問www.blog.com就會發現,先輸出中間件的內容,再輸入控制器的內容。

從一個簡單的小例子入門ThinkPHP6的中間件

這也就是應證了官方對中間件的定義,在執行方法前先去執行對應的中間件。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享