Ted's Blog



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钩子的参考

分享:

写评论


Contact ME

github:https://github.com/tebie6

email:liumingyuphp@163.com

友情链接

无敌我大鑫哥:http://dream128.cn