国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

[已解決]關(guān)于中間件和控制器鉤子執(zhí)行順序的問題

蛋奶走勢

業(yè)務(wù)邏輯為,鑒權(quán)中間件處理鑒權(quán),控制器鉤子處理后續(xù)控制器需要的數(shù)據(jù),測試之后,發(fā)現(xiàn)執(zhí)行順序和預(yù)想的不一致,環(huán)境配置如下圖
插件版本

中間件配置

控制器基礎(chǔ)鉤子類

繼承基礎(chǔ)類的控制器

最后執(zhí)行的順序

按照預(yù)想,中間件應(yīng)該是先于基礎(chǔ)鉤子類執(zhí)行,但是測試的結(jié)果,基礎(chǔ)鉤子類卻先執(zhí)行了,然后又測試了不繼承基礎(chǔ)類,直接在控制器使用鉤子,鉤子函數(shù)的執(zhí)行也是先于中間件,就有點搞不明白,想問下大家我是不是使用的姿勢有問題

1725 1 1
1個回答

walkor 打賞

原因

控制器鉤子函數(shù)實際上就是利用全局中間件實現(xiàn)的,中間件執(zhí)行順序為 全局鉤子中間件(觸發(fā)鉤子函數(shù)) -> user應(yīng)用中間件UserAuth,所以這就是為什么先執(zhí)行beforeAction,再執(zhí)行UserAuth的原因。

解決辦法

把全局鉤子中間件改成user應(yīng)用中間件,更改配置 config/plugin/webman/action-hook/middleware.php

return [
    '' => [
        ActionHook::class
    ]
];

改為

return [
    'user' => [
        ActionHook::class
    ]
];

這樣執(zhí)行順序就是 user應(yīng)用中間件UserAuth -> user應(yīng)用鉤子中間件(觸發(fā)鉤子函數(shù))

年代過于久遠,無法發(fā)表回答
??