钩子(Hook)

提供一种机制在不需要修改框架代码的情况下来扩展核心框架,改变或增加框架的核心运行功能。

启用钩子

在 src/config/config.php 中启用钩子

hook_enabled => 1

设置钩子

在src/config/hooks.php设置钩子

钩子业务逻辑实现

钩子类保存在 "src/module/{$mod}/hook/" 文件夹; 钩子必须实现wf\IHook类,钩子管理器将执行钩子实现类中的execute方法。

<?php
namespance module\user\hook;
class AclHook implements \wf\IHook {
    public function execute($params = array()) {
        // to do sth.
    }
}

配置规则

挂钩点

挂钩点是系统在框架中触发的位置。

自定义挂钩点

你也可以在自己开发的模块控制器中加入挂钩点 1、先在你的业务代码中加入挂钩点

$hookObj = \wf\mvc\App::getInstance()->getHook();
$hookObj->call('my_hook_call_id'); // my_hook_call_id 为挂载点id

2、然后在配置问价中加入钩子调用类

  'my_hook_call_id' => {
       '\\module\\mymod\\hook\\MyHook',  // 钩子类名
       new \module\mymod\hook\MyHook2(), // 钩子类的实例
  }