laravel - 5.3中間件執行流程重大改變!
伊谢尔伦
伊谢尔伦 2017-05-16 16:49:21
0
2
655

國內沒人用最新版本,沒發現這個邏輯變化?都不在建構函式裡判斷使用者登入的(沒發現的你悲劇了)?
幫我看下這個正式回覆:https://github.com/laravel/fr...
**我英文不好!解釋下! laravel5.3很重要的改進
為什麼要這麼做?
我該怎麼寫新的邏輯? **
我需要這樣改進的理由,我要怎麼解決我的邏輯!

疑問這樣做就是廢了__construct
那麼中間件的except應該加到中間件作為一個屬性比較合理!
protected $except =['login','register','oauth_callback'];
糾結:加了這個覺得不合理(多個群組呼叫這個的話就不合理了),不加這個吧為了一個登陸寫__construct又覺得不好!

目前答案:1樓的其實也可以,不過這個優雅多了
callAction說明:https://laravel.com/api/maste...



##laravel 5.3,反正是最新的,每次都update!
現在有這3個,中間件,控制器,建構子
有2個函數必須在建構函式裡實例化。而且必須登入狀態下,不登入不准實例化。 建構子:

##中介軟體:

##方法:

#輸出:


#路由裡


### ###自訂中間件###

##按laravel的邏輯輸出:
2建構子
1中間件
3這是推廣

但是這樣的話構造函數裡沒登入就實例化了,而且不管中間件放在哪,都是先運行建構子再運行中間件的,
我要的結果是:
1中間件,判斷登錄,沒登陸就跳到
2建構函數,登入後實例化
3這是推廣,執行推廣!
怎麼修改邏輯,我要登入後才呼叫公用方法,沒登入的跳轉登入(排除註冊和登入)!

大概的問題就是laravel必須先運行構函數,然後才可以呼叫中間件,
那我應該怎麼個邏輯才可以實現我的要求的!

$this->wx_api();
$this->agent();

這2個公用的,一般都寫到__construct裡的吧!

我還是納悶,照常理,路由器裡定義了,判斷類別裡有這個方法,然後這時候呼叫中間件,然後執行建構函數,然後是方法!怎麼會這種流程呢!


粗暴方法問題,看下面的(不能在構造函數裡跳轉,寫echo和exit在laravel你會覺得超級難看,反正我受不了,上面的演示純粹為了看!)

http://laravelacademy.org/pos...
仔細的想了一下,發現這個完美的破壞了面向對象的職責分離的要求,並成功的提高了耦合度
因為這句話,我才想使用中間件! (到底哪個好,我是新手,我都不知道怎麼說!)


laravel 5.3是建構Middleware -> 建構Controller ->執行中間件handle -> 執行Controller中間件 -> Controller的方法,所以中間件是在建構子後執行的

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!