多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Niushop开源商城钩子开发 --- 下面以会员签到插件(NsMemberSign)的原理通俗的说明钩子的调用原理: * **钩子的调用方式,实例 hook\(‘memberAction’, \['type' => 'NsMemberRegister', 'uid' => 12\]\);** * **查询可实现memberAction的钩子列表:** ``` ``` * ``` 通过查询数据库sys\_hook表中可执行的插件列表(实际存储缓存) ![](https://img.kancloud.cn/f6/fa/f6fa0b70f18542dac17535cc009d2534_1091x78.png) 通过查看可执行memberAction的插件: NsMemberRegister,NsMemberPraise,NsMemberSign,NsMemberEvaluate,NsMemberShare ``` * **通过实例化对应插件的入口类,建立对象,同时执行对应的方法** ```php 例如:插件执行列表存在:NsMemberSign,首先创建对象: $class = new addons\NsMemberSign\NsMemberEvaluateAddon(); 其次调用钩子方法(方法名=钩子名 ,参数=对应传入参数): $res = $class->memberAction(['type' => 'NsMemberRegister', 'uid' => 12]); ``` * **循环执行插件列表依次返回数据** 钩子的安装: * **钩子是对应插件的入口文件中的public方法,在执行安装插件时存入sys\_hook数据表,钩子执行时查询表进行调用。**