引入鉤子:`use rp\\Hook`
#### **添加鉤子**:Hook::addHook(名稱,執行控制器::執行方法),如:
~~~
Hook::addHook('hookName', 'plugin\demo\index::action');
~~~
#### **刪除鉤子**:Hook::deleHook(名稱,執行控制器::執行方法),如:
~~~
Hook::deleHook('hookName','plugin\demo\index::action');
~~~
#### **執行鉤子**:Hook::doHook(名稱, $areg, $isReturn),如:
~~~
/*
$args為鉤子的傳遞參數(數組形式),$isReturn默認false,
當$args傳遞鉤子的指定方法時,$isReturn可為鉤子的傳遞參數,第四參數可為$isReturn。
當$isReturn為true時,如果hook擁有多個,那么除第一個外其他不會執行。
舉例:
*/
//運行hookName鉤子
$res=Hook::doHook('hookName');
//運行hookName鉤子帶參數,帶上&表示引用參數
$args='this is args';
$res=Hook::doHook('hookName', array(&$args));
//運行hookName鉤子帶參數并返回
$args='this is args';
$res=Hook::doHook('hookName', array($args), true);
//運行hookName鉤子的指定方法
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action);
//運行hookName鉤子的指定方法并返回
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action, true);
//運行hookName鉤子的指定方法并帶參數
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action, array('this is args'));
//運行hookName鉤子的指定方法帶參數并返回
$action='plugin\demo\index::action';
$res=Hook::doHook('hookName', $action, array('this is args'), true);
~~~
提示:
鉤子是以數組形式返回執行結果,若同一個Hook有多個對應方法,則返回[res1,res2,res3,...],res是字符串還是其他形式取決于hook對應方法的返回數據。
如果hook只有一個對應方法,想獲取執行結果,則使用$res[0]調用。
#### **獲取鉤子**:Hook::getHook(名稱)
#### **判斷鉤子是否存在**:Hook::hasHook(名稱)
#### **保存鉤子緩存文件**:Hook::saveHook()
#### **清空鉤子**:Hook::setHookNull()