php

PHP 中Hook的理解

2020-02-23  本文已影响0人  bianruifeng

Hook 的原理 相当于一个工厂方法;

Hook 是工厂;
controller 相当于甲方;
behavior 行为相当于需求(比如:发送短信,插入数据,日志文件等等)
tags 相当于 工厂的生产日程、任务清单,生产经理。

现在甲方爸爸来了

因为甲方想打架,但是又不想学武功,所以要雇人打架,于是找到了工厂Hook。(给自己添加技能,又不占用空间,雇人干活)

$result = Hook::listen('task1', $params, null, true);

task1 就是打架的任务,params 就是打架需要的参数。
result 就是打架的结果,即执行task1 返回的结果。

厂长把任务分配给tags 生产经理,经理一看任务清单

return [
    // 视图内容过滤
    'task1'  => [
         'app\\common\\behavior\\user1',
         'app\\common\\behavior\\ user2',
     ],
];

清单上有task1的生产任务,并且明确的指出了能打架的拳击手是谁「'app\\common\\behavior\\ user1',」,于是user1 去打了一架。

甲方问能不能造替考试??
于是厂长去查任务清单。

  if (Hook::get('task1')) {
            echo  '可以替考';
    }

但是生产清单里没有task2任务,于是直接找找到厂长去注册了task2任务。

Hook::add("task2","\\app\\index\\hook\\Test");//注册钩子
$result = Hook::listen('task2', $sms, null, true);//执行
上一篇下一篇

猜你喜欢

热点阅读