摘要:想要做到這一點,你需要定義中間件為。如果你希望在及方法被調(diào)用時使用一致的中間件實例,只需在容器中使用容器的方法注冊中間件以上就是路由和中間件的學(xué)習(xí),最后那那其實理解得有點虛,有錯記得指出修正,謝謝
前幾篇了解完從請求到響應(yīng)的流程后,仔細學(xué)習(xí)下路由和中間件的玩法
----------------------------------分割線--------------------------------
路由基本用法可以參考中文文檔的路由,要注意的是
1)$app要換成$route
2)namespace不需要寫全,5.5新版本會自動把前面的那部分補全
上一下基本例子:
//當(dāng)路由為api.com/index.php/user/1/hano/2時, //由ExampleController的show方法響應(yīng)請求 $router->get("user/{id}/{name}/{sex}", "ExampleController@show"); //as鍵值對可以對此路由進行命名,uses指定響應(yīng)操作 //as的作用有利于生成重定向的URL:redirect()->route("profile"); //middlerware中間件提供了一個方便的機制來過濾進入應(yīng)用程序的 HTTP 請求 **使用中間件要先在app.php中打開routeMiddleware代碼的注釋進行注冊中間件** // $app->routeMiddleware([ // "auth" => AppHttpMiddlewareAuthenticate::class, // "validate" => AppHttpMiddlewarevalidateMiddle::class, // "before" => AppHttpMiddlewareeforeMiddle::class, // "after" => AppHttpMiddlewareafterMiddle::class, // ]); $router->get("getUrl/{str}", [ "as" => "profile", "uses" => "ExampleController@getUrl", "middleware" => "auth" ]); //路由群組可以為多個路由設(shè)置共同屬性,而不需在每個路由上都設(shè)置一次 //namespace命名空間將匹配到的路由給到AppHttpControllersUser下的控制器處理 //prefix路由前綴匹配到的路由為api.com/index.php/admin/{路由名稱} //middleware此組路由都會先經(jīng)過validate中間件 $router->group([ "namespace" => "User", "prefix" => "admin", "middleware => "validate" ],function() use ($router) { $router->get("getUserInfo/{user_id}", [ "as" => "getUserInfo", "uses" => "UserController@getUserInfo" ]); $router->post("updateUserInfo/{user_id}", [ "as" => "updateUserInfo", "uses" => "UserController@updateUserInfo" ]); });中間件
中間件文件都放在app/http/Middleware文件夾中,可以根據(jù)ExampleMiddleware.php進行創(chuàng)建
中間件分前置和后置兩種
namespace AppHttpMiddleware; use Closure; class BeforeMiddleware { //第三個參數(shù)為額外傳參 public function handle($request, Closure $next, $name) { //前置中間件,在執(zhí)行路由定義指定的操作前做你想做的事情 var_dump($name); return $next($request); } }后置中間件
路由可指示多個中間件,用數(shù)組形式表達
附加的中間件參數(shù)將會在 $next 參數(shù)之后被傳入中間件,用法://在路由中使用冒號 : 來區(qū)隔中間件名稱與指派參數(shù),多個參數(shù)可使用逗號作為分隔 $router->get("getUrl/{str}", [ "as" => "profile", "uses" => "ExampleController@getUrl", "middleware" => ["before:hano","after:hano"] //hano將為$name的值 ]);全局中間件每個 HTTP 請求都經(jīng)過一個中間件,只要將中間件的類加入到 bootstrap/app.php 的 $app->middleware() 調(diào)用參數(shù)數(shù)組中。
$app->middleware([ AppHttpMiddlewareAuthenticate::class, ]);Terminable中間件有些時候中間件需要在 HTTP 響應(yīng)被發(fā)送到瀏覽器之后才運行,例如,「session」中間件存儲的 session 數(shù)據(jù)是在響應(yīng)被發(fā)送到瀏覽器之后才進行寫入的。想要做到這一點,你需要定義中間件為「terminable」。
terminate 方法必須接收請求($request)及響應(yīng)($response)兩個參數(shù)。一旦定義了 terminable 中間件,你便需要將它增加到 bootstrap/app.php 文件的全局中間件清單列表中。
$app->middleware([ AppHttpMiddlewareAuthenticate::class, AppHttpMiddleware erminable::class, ]);當(dāng)在你的中間件調(diào)用 terminate 方法時,Lumen 會從 服務(wù)容器 解析一個全新的中間件實例。
如果你希望在 handle 及 terminate 方法被調(diào)用時使用一致的中間件實例,只需在容器中使用容器的 singleton 方法注冊中間件
$app->singleton( AppHttpMiddleware erminable::class );以上就是路由和中間件的學(xué)習(xí),最后那terminable那part其實理解得有點虛,有錯記得指出修正,謝謝
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/26200.html
摘要:接著上篇分割線是的實例,但是文件中找不到方法在類內(nèi)部看到,打開找到了方法,方法注釋寫的是主要用于運行應(yīng)用以及發(fā)送響應(yīng)主要看方法 接著上篇$app->run();--------------------分割線------------------------ $app是Application的實例,但是Application.php文件中找不到run方法在類內(nèi)部看到use Concerns...
摘要:繼續(xù)學(xué)習(xí)分割線看看是怎么輸出這個數(shù)據(jù)目錄下的加載了下的的自動加載加載的配置初始化應(yīng)用初始化的內(nèi)容指定項目基礎(chǔ)目錄注冊服務(wù)容器注冊異常處理實例 繼續(xù)學(xué)習(xí)lumen5.5 -----------------------分割線----------------------- 看看是怎么輸出Lumen (5.5.2) (Laravel Components 5.5.*)這個數(shù)據(jù) public目錄...
摘要:最近在學(xué)習(xí)框架寫接口,記憶力比較差所以順便寫下筆記分割線因為直接學(xué)最新版的所以,記得開啟的,,擴展還有可以用的打開命令 最近在學(xué)習(xí)lumen框架寫API接口,記憶力比較差所以順便寫下筆記~ -----------------------------分割線-------------------------------- 因為直接學(xué)最新版的所以,PHP >=7.0記得開啟php.ini的o...
摘要:打開瀏覽器輸入,如無意外,將出現(xiàn)如下圖,表示框架安裝成功。四系統(tǒng)內(nèi)部后臺管理系統(tǒng)這個是框架自帶的后臺登錄管理系統(tǒng),只需要簡單的命令即可運行。出現(xiàn)上圖即為,創(chuàng)建模型成功。 在PHP個各種web開發(fā)框架中,laravel算是一款簡潔、優(yōu)雅的開發(fā)框架,本人也剛剛接觸到laravel,通過學(xué)習(xí)大神們的一些文章,下面是我的一些心得體會,希望可以給初學(xué)者一些幫助,大家一起進步。言歸正傳: 本人環(huán)境...
摘要:本文轉(zhuǎn)載自眾成翻譯譯者網(wǎng)絡(luò)埋伏紀事鏈接原文本章我會指導(dǎo)你啟動一個簡單的服務(wù)器,并開始為請求服務(wù)?,F(xiàn)在,我們開始創(chuàng)建第一個服務(wù)器我們將模塊,并將服務(wù)器綁定到端口來監(jiān)聽。必須用如下方式啟動服務(wù)器總結(jié)本章學(xué)習(xí)了如何從頭開始創(chuàng)建第一個服務(wù)器。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀事鏈接:http://www.zcfy.cc/article/1750原文:https://blog.risings...
閱讀 2214·2021-11-22 09:34
閱讀 1443·2021-10-09 09:44
閱讀 3165·2021-09-29 09:35
閱讀 3770·2021-09-14 18:01
閱讀 1653·2021-08-16 10:49
閱讀 1254·2019-08-29 14:11
閱讀 973·2019-08-29 12:47
閱讀 3200·2019-08-26 13:47