企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
引入钩子:`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()