请教hook的写法

时光
  • 109

我在写hook的时候不知道写法是否正确还请各位大佬提提意见,好让我能得到提升,代码如下:

<?php
namespace eoc\library;
class Hook
{

    /**
     * @var array 用于存放hook列表
     */
    private static  $hookList = [];

    /**
     * 动态添加插件到某个标签
     * @param $key string 插件下标
     * @param $name mixed 插件名称
     */
    public static function  addHook($key, $name)
    {
        if (!array_key_exists($key, static::$hookList)) {
            static::$hookList[$key] = [];
        }
        if (is_array($name)) {
            static::$hookList[$key] = array_merge(static::$hookList, $name);
        } else {
            static::$hookList[$key][] = $name;
        }
    }

    /**
     * @param $name 要启动的方法名称
     * @param null $param 额外参数
     */
    public static function runHook($name, $param = null)
    {
        foreach (static::$hookList[$name] as $key => $value) {
            call_user_func($key, $param);
        }
    }

}
回复
阅读 1.5k
你知道吗?

宣传栏