摘要:中間件執行點有兩個執行點此時定義的中間件將在控制器構造函數之后執行,但在執行任何控制器操作之前執行。控制器構造函數始終首先執行這是的行為,而不會對其進行修改。添加后綴避免沖突的一種方法是將后綴添加到中間件名稱。
中間件 Middleware 內容 Contents
介紹 Introduction
中間值執行點 Middleware execution points
創建中間件 Create a middleware
分配中間值 Assign a middleware
全局中間件 Global Middleware
路由中間件 Route middleware
運行中間件 Run a middleware
中間件參數 Middleware parameters
外部中間件 External middleware
介紹 ( Introduction )將中間件視為一組層,請求必須在您的應用程序中通過才能到達資源。
例如,使用中間件,您可以驗證用戶是否已登錄并具有足夠的權限來訪問應用程序的某些部分,否則將其重定向到其他位置。
實際上,中間件是控制器的擴展,因為框架的單例已經在此時構建,您可以使用該ci()函數來獲取它。
中間件執行點 ( Middleware execution points )有兩個執行點:
pre_controller: 此時定義的中間件將在控制器構造函數之后執行,但在執行任何控制器操作之前執行。
post_controller: 此時定義的中間件將完全在post_controllerCodeIgniter 的本機鉤子上運行。
控制器構造函數始終首先執行
這是CodeIgniter的行為,而Luthier CI不會對其進行修改。
在某些時候您可能需要在中間件之前執行代碼,這樣做的方法是在控制器中定義一個名為的公共方法preMiddleware:
作為路由在回調中不可用
當您使用回調作為路由時,無法在中間件之前執行任意代碼
創建一個中間件 ( Create a middleware )所有中間件必須保存在application/middleware文件夾中。中間件是任何帶有run()公共方法的PHP類。
例:
實現 MiddlewareInterface 接口將是強制性的
從0.3.0版本開始,使用未實現LuthierMiddlewareInterface 接口的中間件類是DEPRECATED并將在下一版本中停止工作
為了在應用程序中分配中間件,必須同時使用類的名稱和文件的名稱。另外,請注意不要使用與框架中的其他資源相同的名稱,例如控制器,模型,庫等。
添加 Middleware 后綴
避免沖突的一種方法是將 Middleware后綴添加到中間件名稱。
從命令行創建中間件
如果已激活Luthier CI的內置CLI工具,請使用該luthier make middleware [name] 命令創建新的中間件
分配中間件 ( Assign a middleware )您可以在應用程序的不同上下文中分配中間件:
全球中間件 ( Global middleware )要在全局上下文中定義中間件,請使用以下語法:
Route::middleware([name], [exec_point?]);name i中間件的名稱在哪里, exec_point 是執行點,默認情況下是 pre_controller.
您可以使用匿名函數而不是中間件的名稱:
Route::middleware(function(){ ci()->load->view("global_header"); });路由中間件 ( Route middleware )在route group上下文中,中間件是另一個屬性,因此它位于方法的第三個參數中 group() :
Route::group("site", ["middleware" => ["AuthMiddleware"]], function(){ });最后,在 individual route 上下文中,中間件也是另一個屬性,因此它在第二個參數中
Route::put("foo/bar","controller@method", ["middleware" => ["TestMiddleware"]]);僅在pre_controller點將
中間件分配給路由和路由組時,執行點始終為 pre_controller
運行中間件 ( Run a middleware )要從控制器運行中間件,請使用屬性的run() 方法 middleware :
middleware->run("AuthMiddleware"); } }中間件參數 ( Middleware parameters )該屬性的 run() 方法 middleware 支持帶有中間件參數的第二個參數:
// $args can be any variable type: $args = ["foo" => "bar"]; $this->middleware->run("AuthMiddleware", $args);外部中間件 ( External middleware )只要它有一個名為的公共方法,就可以從外部類運行中間件 run()
middleware->run(new CustomMiddleware()); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31396.html
摘要:歡迎關于是的一個插件,增加了有趣的功能,旨在簡化大型網站和的構建。它是為了盡可能地與框架集成,因此在安裝后,應用程序中已存在的所有內容應該繼續正常工作。在大多數情況下,安裝不會超過分鐘社區和支持要報告錯誤并提出更改,請訪問上的存儲庫 歡迎 關于Luthier CI Luthier CI是CodeIgniter的一個插件,增加了有趣的功能,旨在簡化大型網站和API的構建。 它是為了盡可能...
摘要:訪問控制列表的配置與訪問控制列表使用的類別和權限類別組的名稱和的關聯排列。 簡單的認證 SimpleAuth 內容 Contents 介紹 Introduction 安裝 Installation 第1步:復制所需的文件 Step 1: Copy the required files 第2步:安裝數據庫 Step 2: Install the database 第3步:定義...
摘要:返回表示用戶的對象。相反,存儲使用單向加密算法生成的哈希。例刪除當前會話要從當前身份驗證會話中刪除所有數據包括當前存儲的經過身份驗證的用戶,請使用靜態方法用戶操作有兩種操作可用于對經過身份驗證的用戶執行角色驗證和權限驗證。檢查密碼重置請求。 Luthier CI 認證框架 ( Authentication Framework ) 內容 Contents 介紹 Introduct...
摘要:例子例子多語言網站這是一個示例,顯示了由管理的多語言網站。中間件用于加載當前語言文件。 例子 Examples 例子 # 1: 多語言網站 Multi-language website 這是一個示例,顯示了由URL管理的多語言網站。中間件用于加載當前語言文件。
摘要:安裝內容要求安裝獲得啟用自動加載和掛鉤將與您的應用程序連接初始化要求安裝獲得需要通過安裝。編寫權限如果在創建基本文件期間出現錯誤,則可能是由于權限不足。確保該文件夾具有寫入權限 安裝 ( Installation ) 內容 ( Contents ) 要求 Requirements 安裝 Installation 獲得Luthier CI Get Luthier CI 啟用Co...
閱讀 540·2021-08-31 09:45
閱讀 1647·2021-08-11 11:19
閱讀 883·2019-08-30 15:55
閱讀 822·2019-08-30 10:52
閱讀 2845·2019-08-29 13:11
閱讀 2924·2019-08-23 17:08
閱讀 2833·2019-08-23 15:11
閱讀 3066·2019-08-23 14:33