php ghook 全局钩子功能 v0

本文介绍了PHP中实现全局钩子功能的细节,重点讲解了如何使用ghook类及其实例化callback类来触发相应操作。核心类包括h_member_base和hc_comment_member_base,通过循环调用这些类的方法来执行各个挂钩。
摘要由CSDN通过智能技术生成
在 cms 系统中遇到过这种情况:
其它模块的数据需要关联会员模块的会员数据,所以在删除会员时应需要与会员数据关联的模块进行数据关联操作。
比如删除一个会员时同时删除此会员发布的文章。
但是,其它模块是在会员模块之后才开发出来的,要实现这种关联性,可以每多一个与会员模块关联的模块就改动一次会员模块的代码,又或者,使用 hook(钩子)的概念。

通过制定一套全系统模块统一的 hook 规则,令数据关联问题通过 hook 灵活地解决。
值得注意,这套 hook 规则首要解决的是模块间的数据关联问题,其次才考虑实现模块“插件”那种 hook 。

下面以“删除一个会员数据应先删除其相关数据”为例子说明这套 hook 规则:

在模块目录使用 hook 目录保存与 hook 系统相关的所有代码。
/member/hook/ 是会员模块 hook 目录。
/comment/hook/ 是评论模块 hook 目录。

在这个例子中, hook 是由会员模块提供的,如“删除一个会员”hook。其它模块挂载到会员模块的 hook 中。
提供及挂载 hook 的代码使用类的形式定义,钩子使用 hook 这个单词,挂载的代码使用 callback 这个单词。

在 hook 目录内使用一个名为 mod 的文本文件记录挂载到此模块的模块列表,一行一个:
file:/member/hook/mod
comment

提供 hook 的类使用 h_ 前序(h表示hook),文件名规则为 h_{hook_name}.class.php ,对应的类名为 h_{mod_name}_{hook_name} 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值