多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 监听钩子 `listen` 执行机制和过滤器基本一致,执行行为下的所有的钩子,监听传入的参数,然后对其作出对应的判断,只是不会返回值. ``` Hooks::listen('行为名称','参数(按需求传参即可)'); ``` ### 例: 实现一个满足阅读次数给用户增加积分的功能 添加钩子 ``` Hooks::add('read_num',Hooks\Hooks::class,'read_num'); Hooks::add('read_num',Hooks\Hooks::class,'read_num2'); ``` 编写钩子 ``` <?php namespace Hooks; use \GFPHP\DB; class Template { //-- 访问第1次增加1金币 public function read_num($user_read_num,$user_id){ if($user_read_num==1){ DB::table('users')->where('user_id',$user_id)->setInc('score',1); } } //-- 访问第10次增加10金币 public function read_num2($user_read_num,$user_id){ if($user_read_num==10){ DB::table('users')->where('user_id',$user_id)->setInc('score',10); } } } ``` 执行钩子 ``` Hooks::listen('read_num',[ //-- 阅读次数 1, //-- 用户ID 1 ]); ``` 用户积分会增加一个 如果阅读次数是10 ``` Hooks::listen('read_num',[ //-- 阅读次数 10, //-- 用户ID 1 ]); ``` 用户积分会增加10个.