mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
改进hook类
This commit is contained in:
@@ -24,6 +24,9 @@ class Hook
|
||||
*/
|
||||
public static function add($tag, $behavior)
|
||||
{
|
||||
if (!isset(self::$tags[$tag])) {
|
||||
self::$tags[$tag] = [];
|
||||
}
|
||||
if (is_array($behavior)) {
|
||||
self::$tags[$tag] = array_merge(self::$tags[$tag], $behavior);
|
||||
} else {
|
||||
@@ -32,13 +35,48 @@ class Hook
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量导入行为
|
||||
* @param array $tags 标签行为
|
||||
* 批量导入插件
|
||||
* @param array $data 插件信息
|
||||
* @param boolean $recursive 是否递归合并
|
||||
* @return void
|
||||
*/
|
||||
public static function import($tags)
|
||||
public static function import($tags, $recursive = true)
|
||||
{
|
||||
self::$tags = array_merge(self::$tags, $tags);
|
||||
if (!$recursive) {
|
||||
// 覆盖导入
|
||||
self::$tags = array_merge(self::$tags, $tags);
|
||||
} else {
|
||||
// 合并导入
|
||||
foreach ($tags as $tag => $val) {
|
||||
if (!isset(self::$tags[$tag])) {
|
||||
self::$tags[$tag] = [];
|
||||
}
|
||||
|
||||
if (!empty($val['_overlay'])) {
|
||||
// 可以针对某个标签指定覆盖模式
|
||||
unset($val['_overlay']);
|
||||
self::$tags[$tag] = $val;
|
||||
} else {
|
||||
// 合并模式
|
||||
self::$tags[$tag] = array_merge(self::$tags[$tag], $val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取插件信息
|
||||
* @param string $tag 插件位置 留空获取全部
|
||||
* @return array
|
||||
*/
|
||||
public static function get($tag = '')
|
||||
{
|
||||
if (empty($tag)) {
|
||||
// 获取全部的插件信息
|
||||
return self::$tags;
|
||||
} else {
|
||||
return self::$tags[$tag];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user