聯(lián)系官方銷售客服
1835022288
028-61286886
鉤子特性提供了一種方法來修改框架的內(nèi)部運作流程,而無需修改核心文件。
有些時候你可能希望在執(zhí)行流程中的某些階段添加一些動作,例如在控制器加載之前或之后執(zhí)行一段腳本, 或者在其他的某些位置觸發(fā)你的腳本。
鉤子程序文件
./config/hooks.php 此文件是網(wǎng)站鉤子的定義文件,你可以把腳本寫在這里。
執(zhí)行方法格式
\Phpcmf\Hooks::on(掛鉤點名稱, 執(zhí)行代碼函數(shù), 執(zhí)行序號越大越優(yōu)先); 或者 \Phpcmf\Hooks::app_on(插件名稱, 掛鉤點名稱, 執(zhí)行代碼函數(shù), 執(zhí)行序號越大越優(yōu)先);
掛鉤點名稱,由系統(tǒng)提供以便二次開發(fā)。
執(zhí)行代碼,你可以使用lambda表達式(匿名函數(shù)或閉包)作為鉤子執(zhí)行,這樣語法更簡單:
// appname指插件目錄,表示這個插件在調(diào)用,方便排查是哪個插件在調(diào)用這個鉤子
執(zhí)行序號,越大越靠前執(zhí)行,不傳入就按默認順序。
一、系統(tǒng)自帶的鉤子
系統(tǒng)會內(nèi)置一些常用的鉤子,例如:
cms_init 系統(tǒng)初始化后執(zhí)行 cms_close 系統(tǒng)關(guān)閉時 cms_end 系統(tǒng)post執(zhí)行結(jié)束時 cms_404 系統(tǒng)404時 cms_view 模板解析之后 ....
我們會根據(jù)開發(fā)者的需求來增加一些常用的鉤子,當(dāng)開發(fā)者需要時,可以給框架創(chuàng)始人提出。
二、自定義:無返回值的鉤子
定義鉤子點
\Phpcmf\Hooks::trigger('cms_diy_hook');
定義執(zhí)行鉤子函數(shù)
// appname指插件目錄,表示這個插件在調(diào)用,方便排查是哪個插件在調(diào)用這個鉤子
三、自定義:有返回值的鉤子
定義鉤子點
定義執(zhí)行鉤子函數(shù)
// appname指插件目錄,表示這個插件在調(diào)用,方便排查是哪個插件在調(diào)用這個鉤子