欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

平時(shí)網(wǎng)站項(xiàng)目采用thinkphp5.1有必要用鉤子、行為和中間件嗎?

2023-03-15    分類: 網(wǎng)站建設(shè)

ThinkPPHP中的鉤子和行為放在一起說(shuō),說(shuō)因?yàn)樗麄儍蓚€(gè)是結(jié)合在一起用的,行為主要指的是我們需要執(zhí)行的一些邏輯操作。下面列舉一些常見(jiàn)的應(yīng)用場(chǎng)景:
1、網(wǎng)站后臺(tái)管理的每一個(gè)頁(yè)面都需要進(jìn)行身份和權(quán)限驗(yàn)證,這時(shí)候可以在項(xiàng)目中用一個(gè)鉤子,在頁(yè)面生命周期事件action_begin中插入一個(gè)事件用于執(zhí)行驗(yàn)證行為。
2、當(dāng)網(wǎng)站項(xiàng)目需要維護(hù)時(shí),用戶打開(kāi)每一個(gè)頁(yè)面顯示維護(hù)信息,這時(shí)候可以在頁(yè)面生命周期app_init中插入一個(gè)事件,顯示維護(hù)信息和終止其他生命事件的執(zhí)行。
3、加載一下公用的數(shù)據(jù),只需要在action執(zhí)行的事件之前加載數(shù)據(jù),頁(yè)面action操作時(shí)就可以直接使用數(shù)據(jù)。
4、頁(yè)面執(zhí)行完畢,進(jìn)行一些臨時(shí)的特殊的頁(yè)面內(nèi)容輸出替換??梢栽趘iew_filter事件中操作。
5、對(duì)每一個(gè)頁(yè)面做一些特殊的監(jiān)控,可以在app_end或者response_end事件中加入操作邏輯。
除了以上列舉的,還有很多應(yīng)用場(chǎng)景。
如果不使用鉤子,可以嗎?答案是肯定的,除了用最笨的方法(在每一個(gè)操作前都加段代碼)外,還可以定義一個(gè)基礎(chǔ)控制器類,然后其他所有控制器都繼承這個(gè)基礎(chǔ)類,從而實(shí)現(xiàn)上訴功能。
但是鉤子有個(gè)特別的地方是,代碼是放在其他地方,管理方便,同時(shí)更加方便在每個(gè)生命周期插入事件,更加方便。

行為定義

app_init 應(yīng)用初始化標(biāo)簽位 無(wú)參數(shù)
app_dispatch 應(yīng)用調(diào)度標(biāo)簽位 無(wú)參數(shù)
app_begin 應(yīng)用開(kāi)始標(biāo)簽位 無(wú)參數(shù)
module_init 模塊初始化標(biāo)簽位 無(wú)參數(shù)
action_begin 控制器開(kāi)始標(biāo)簽位 當(dāng)前的callback參數(shù)
view_filter 視圖輸出過(guò)濾標(biāo)簽位 當(dāng)前模板渲染輸出內(nèi)容
app_end 應(yīng)用結(jié)束標(biāo)簽位 當(dāng)前響應(yīng)對(duì)象實(shí)例
log_write 日志write方法標(biāo)簽位 當(dāng)前寫入的日志信息
log_write_done 日志寫入完成標(biāo)簽位
response_send 響應(yīng)發(fā)送標(biāo)簽位 當(dāng)前響應(yīng)對(duì)象
response_end 輸出結(jié)束標(biāo)簽位 當(dāng)前響應(yīng)對(duì)象實(shí)例
需要注意的是:其中l(wèi)og_write鉤子僅在調(diào)用Log::write方法的時(shí)候執(zhí)行。
view_filter鉤子v5.1.3+版本中已經(jīng)廢除,改用視圖類的filter方法過(guò)濾。
創(chuàng)新互聯(lián)建議好在在應(yīng)用目錄下面或者模塊的目錄下面定義tags.php文件來(lái)統(tǒng)一定義行為,因?yàn)檫@種網(wǎng)站架構(gòu)最清晰,如果通過(guò)Hook在頁(yè)面位置綁定,有些是操作不到,如app_init、app_begin等。
如下定義事件示例如下
return [
// 應(yīng)用初始化
'app_init' => [
'app\\test\\behavior\\AppInit'
],
// 應(yīng)用開(kāi)始
'app_begin' => [
'app\\test\\behavior\\AppBegin'
],
// 模塊初始化
'module_init' => [
'app\\test\\behavior\\ModuleInit'
],
// 操作開(kāi)始執(zhí)行
'action_begin' => [
'app\\test\\behavior\\ActionBegin'
],
// 視圖內(nèi)容過(guò)濾
'view_filter' => [
'app\\test\\behavior\\ViewFilter'
],
// 日志寫入
'log_write' => [
'app\\test\\behavior\\LogWrite'
],
// 應(yīng)用結(jié)束
'app_end' => [
'app\\test\\behavior\\AppEnd'
],
];
中間件是用于攔截或過(guò)濾應(yīng)用的HTTP請(qǐng)求,并進(jìn)行必要的業(yè)務(wù)處理,是5.1.16+才增加的功能,可以通過(guò)路由單獨(dú)控制器定義,也可以全局定義,使用非常方便。

中間件定義

創(chuàng)新互聯(lián)認(rèn)為,用鉤子、行為和中間件還是非常有必要使用,可以讓你的系統(tǒng)架構(gòu)更加靈活和優(yōu)化。

分享名稱:平時(shí)網(wǎng)站項(xiàng)目采用thinkphp5.1有必要用鉤子、行為和中間件嗎?
網(wǎng)頁(yè)地址:http://chinadenli.net/news18/244618.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、網(wǎng)站制作、云服務(wù)器、品牌網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
日本婷婷色大香蕉视频在线观看| 国产毛片不卡视频在线| 欧美午夜国产在线观看| 日本人妻中出在线观看| 国产乱久久亚洲国产精品| 国产av熟女一区二区三区四区| 日本福利写真在线观看| 久久热在线视频免费观看| 亚洲一区精品二人人爽久久 | 日本高清中文精品在线不卡| 亚洲在线观看福利视频| 又大又长又粗又猛国产精品| 中文久久乱码一区二区| 国产内射一级一片内射高清| 欧美成人免费夜夜黄啪啪| 丰满人妻少妇精品一区二区三区| 日本久久精品在线观看| 中文字幕久久精品亚洲乱码| 成人午夜视频在线播放| 日韩在线一区中文字幕| 国产欧美韩日一区二区三区| 尹人大香蕉一级片免费看| 黄片三级免费在线观看| 亚洲精品日韩欧美精品| 少妇视频一区二区三区| 九九九热视频免费观看| 夜夜嗨激情五月天精品| 老司机精品视频免费入口| 日韩在线视频精品中文字幕| 超薄肉色丝袜脚一区二区| 免费观看成人免费视频| 久久人人爽人人爽大片av| 国产一区二区熟女精品免费| 国产精品涩涩成人一区二区三区 | 亚洲中文字幕综合网在线| 欧美激情床戏一区二区三| 亚洲黑人精品一区二区欧美| 日本一本不卡免费视频| 久久99青青精品免费| 精品香蕉一区二区在线| 免费久久一级欧美特大黄孕妇|