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