请教hook的写法

我在写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);
        }
    }

}
阅读 2.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题