PHP 钩子程序
我对钩子的理解就是:模块分离,逻辑整合,便于分工开发
网上的举例理解: PHP 写插件 其中的HOOK 只是别人想的一个词语,术语而已 并无实际意义 在WINDOWS编程中 HOOK==钩子 是一种消息机制的一种 意思就是:蚊子叮了你一口,你的大脑神经接收到了,于是指挥肢体,去赶走还是拍死这个蚊子 这个大脑神经就是HOOK,系统接收用户操作,而HOOK则监视某一满足条件 用户输入A ,系统接收到A,而HOOK定义接收B,那么输入A,则不做操作 当输入B了,则激活HOOK,进行执行制定代码 PHP的插件HOOK,比如你添加一个插件,把这个插件信息提前告诉HOOK,然后HOOK去监视用户 当用户调用这个插件,HOOK就感知到了 于是就把插件功能实现出来 引用原文:http://blog.163.com/walnn77@126/blog/static/36062561201182884658590/
ThinkPHP钩子类的实例:http://www.thinkphp.cn/code/337.html
以下为原生实例(仅供参考):此钩子访问的方法是是存于数据库中的
if ($snapshot) { $hook = new Hook(); //调用前置钩子 $before_hook = $snapshot['before_hook']; if ($before_hook) { if (method_exists($hook, "$before_hook")) { //执行、返回结果 if (!$hook->$before_hook()) { //Db::exec("ROLLBACK"); //return array("code" => 400, "msg" => "前置钩子 $before_hook 执行失败"); throw new Exception("前置钩子 $before_hook 执行失败!"); } } else { //Db::exec("ROLLBACK"); //return array("code" => 400, "msg" => "未找到前置钩子 $before_hook"); throw new Exception("未找到前置钩子 $before_hook !"); } } }
以上仅为PHP钩子的参考