因為webman是常駐內存框架
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比弓長嶺網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式弓長嶺網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋弓長嶺地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
當前進程初始化一次后就不會再初始化了
所以構造函數(shù)里傳遞request是不好用的。
這里使用中間件來代替
中間件一般用于攔截請求或者響應。例如執(zhí)行控制器前統(tǒng)一驗證用戶身份,如用戶未登錄時跳轉到登錄頁面。例如響應中增加某個header頭。例如統(tǒng)計某個uri請求占比等等。
中間件和控制器組成了一個經(jīng)典的洋蔥模型,中間件類似一層一層的洋蔥表皮,控制器是洋蔥芯。如果所示請求像箭一樣穿越中間件1、2、3到達控制器,控制器返回了一個響應,然后響應又以3、2、1的順序穿出中間件最終返回給客戶端。也就是說在每個中間件里我們既可以拿到請求,也可以獲得響應,這樣我們就可以在中間件里做很多事情,例如攔截請求或者響應。
中間件必須實現(xiàn)Webman\MiddlewareInterface
接口。
也就是必須實現(xiàn)process
方法,process
方法必須返回一個support\Response
對象,默認這個對象由$handler($request)
生成(請求將繼續(xù)向洋蔥芯穿越),也可以可以是response()
json()
xml()
redirect()
等助手函數(shù)生成的響應(請求停止繼續(xù)向洋蔥芯穿越)。
詳情參照webman文檔
https://www.workerman.net/doc/webman/middleware.html
下面是詳細操作
在/config/middleware.php下添加
return [ '' => [ // .... .... app\middleware\ActionHook::class ] ];