ThinkPHP5 1中介軟體在控制器中使用過程

2021-09-13 03:26:30 字數 2905 閱讀 7759

使用中介軟體的開始以及我的步驟描述,希望可以幫到才學php 或者才學think框架的你們希望能夠與你們交流,讓自己進步。

中介軟體在thinkphp框架中的作用我已經明白了,就是在請求即將達到應用層之前,對使用者訪問資源時候,產生的header頭 或者 使用者的請求引數時候輸入的post 或get 或者別的請求型別,以及url 路徑進行操作,其中包括了前置或者後置操作或者執行順序等方案。在理解後覺得這個東西在處理使用者請求資料的時候有極大的作用,比之直接在控制器或者在行為裡面處理好了很多。(於是懷著滿滿的激動心情閱讀5.1的文件手冊)。

在閱讀完文件後,按照官方手冊的方法,在命令列中敲出如下**:

php think make:middleware check

這段**的意思沒有任何問題就是生產乙個中介軟體目錄以及建立乙個新的名字為check中介軟體檔案

該內容正常完成沒有問題

按照文件要求方案貼上了5.1的文件**

在此確認在我的admin模組根目錄下放置了乙個名字為 middleware.php的檔案 如下圖所示

然後我在控制器內按照文件手冊中的內容,根據控制器中介軟體內容描述加入了如圖所示的**

結果發現,**沒有被執行,納悶的我摸了摸腦袋,按照我的理解應,如果這麼做了的話,應該可以直接應用了才對的,結果物件是個空的。無奈下,按照自己的理解,我在中介軟體內停止了**

在看到自己希望看到的內容後,再次測試我的$request。 看到了我期待已久的東西,我的中介軟體好了

第一步 先吧名字變成我想變得 這裡有三處改動的地方。

再次重新整理後發現依然可以使用,絕對溜溜的跑起來。在這一步中,也堅定了我的一些使用想法,比如創造多個中介軟體,每個控制器都應該有乙個相對應的,在這裡執行一些自己象處理的,在看到手冊上還可以使用各種其他的方法,包括執行順序的改變,這讓我心中各種意淫。從此**變得又可以稍微高大上一點了。

第二步 建立功能規則 配合config配置中的自建檔案,對訪問進行控制

*/class adminlogincheck

// 檢測配置,是否執行位址限制驗證

if (false !== config::get(request::module().'.'.request::action().'.'.request::action().'_address'))

// 格式化與處理前台引數

$request = self::loginparamdispose(request::action(),$request);

// 繼續執行進入到控制器

return $next($request);

}/**

* loginrequestrole 請求型別驗證

* @param string $scene 根據路徑傳入方法名稱

* @return bool 驗證使用者訪問的介面是否符合預設的請求要求

*/protected static function loginrequestrole($scene)

}/**

* loginaddressdispose 位址是否允許訪問

* @param string $address 需要傳入乙個address位址

* @return string 返回錯誤資訊

* @return bool 檢測正確返回真

*/protected static function loginaddressdispose($address)

// 如果繼續執行下去依然沒有 返回不能訪問

return false;

}/**

* loginparamdispose post內容與格式處理

* @param string $scene 需要前往的介面名稱

* @param object $request 請求的物件內容

* @return object 返回處理過的請求物件

*/protected static function loginparamdispose($scene,$request)

return $request;

}第乙個問題是 中介軟體並不是萬能的,只能做一些請求處理,而且是必須帶參的,千萬不要去做不符合要求的高階驗證,這裡最多的只是做一些前置驗證,讓資料安全或者讓資料飽滿

第二給問題是 不要在中介軟體中嘗試做不合時宜的動作,不要在中介軟體中執行超級複雜的**,如果你拿中介軟體做超級複雜的**或者超長運算,我估計可以坑死很多人,這裡所說包括了盡量少使用自己函式庫定義的函式**驗證 有些避不開的還是可以使用的,比如密碼加密這種類似的**

thinkphp5 1中介軟體

class check return next request 中介軟體的入口執行方法必須是 handle 方法,而且第乙個引數是 request 物件,第二個引數是乙個閉包,在一些情況下允許有第三個引數 在路由中直接註冊中介軟體 route get hello name index hello m...

thinkphp5 1 中介軟體是什麼有什麼用

中介軟體主要用於攔截或過濾應用的http請求,並進行必要的業務處理。tp5.1手冊 也就是說,降低了系統的耦合 在http請求階段,執行中介軟體的入口執行方法 handle tp5.1 減少了系統的一些if else判斷,因此降低了系統的耦合 中介軟體可以實現什麼功能,例如許可權驗證,訪問記錄,重定...

thinkphp5 1 中介軟體是什麼,有什麼用

中介軟體是什麼?有什麼作用?中介軟體主要用於攔截或過濾應用的http請求,並進行必要的業務處理。tp5.1手冊 也就是說,降低了系統的耦合 在http請求階段,執行中介軟體的入口執行方法 handle tp5.1 減少了系統的一些if else判斷,因此降低了系統的耦合 中介軟體可以實現什麼功能,例...