引入钩子:`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()