從ThinkPHP6開始,一個叫做「中間件」的名詞出現在了官方手冊中,那麼中間件是用來幹什麼的?又該如何使用呢?下面咱們慢慢分析。
首先看下中介軟體官網的定義:
中介軟體主要用於攔截或過濾應用程式的 HTTP 請求,並進行必要的業務處理。
從字面上不難理解,中間件就是在我們請求控制器的方法之前,中間件就可以攔截或做其他的事情。
我們在www.blog.com中的index控制中的index方法中就寫一行程式碼:
echo "index方法";
我們來測試下定義了中間件會有什麼事情發生?
一、中間件的定義
我們下載好ThinkPHP6框架後,在app下有middleware.php,這個檔案就是中間件的定義文件,我們注意下它的位置,它沒有放在任何應用下面,而是在app下面和BaseController.php是相同目錄的,因此它是一個全局中間件。
定義中間件很簡單,我們有兩個方法:
1、用命令列。 php think make:middleware Check。這個使用後的感受就一個字:快!真快!中間件定義瞬間完成。
2、複製貼上,我們在app下建立middleware目錄,並且建立一個 Check.php的中間件:
<?php namespace app\middleware; class Check { public function handle($request, \Closure $next) { echo "app中间件"; return $next($request); } }
中間件定義完了,為啥沒生效?
依照上面的中間件定義步驟,中間件定義完成,但是並沒有生效,是什麼原因呢?
原因是沒有在設定檔中啟動。如何操作?
打開app\middleware.php,在最小面上加上以下程式碼:
app\middleware\Check::class
我們再造訪www.blog.com就會發現,先輸出中間件的內容,再輸入控制器的內容。
這也就是應證了官方對中間件的定義,在執行方法前先去執行對應的中間件。以上就是一個中間件入門的小例子,這個小例子吃透後,也就為中間件其他的內容打開了大門。
以上是從一個簡單的小例子入門ThinkPHP6的中間件的詳細內容。更多資訊請關注PHP中文網其他相關文章!