mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
改进hook类
This commit is contained in:
@@ -24,6 +24,9 @@ class Hook
|
|||||||
*/
|
*/
|
||||||
public static function add($tag, $behavior)
|
public static function add($tag, $behavior)
|
||||||
{
|
{
|
||||||
|
if (!isset(self::$tags[$tag])) {
|
||||||
|
self::$tags[$tag] = [];
|
||||||
|
}
|
||||||
if (is_array($behavior)) {
|
if (is_array($behavior)) {
|
||||||
self::$tags[$tag] = array_merge(self::$tags[$tag], $behavior);
|
self::$tags[$tag] = array_merge(self::$tags[$tag], $behavior);
|
||||||
} else {
|
} else {
|
||||||
@@ -32,13 +35,48 @@ class Hook
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量导入行为
|
* 批量导入插件
|
||||||
* @param array $tags 标签行为
|
* @param array $data 插件信息
|
||||||
|
* @param boolean $recursive 是否递归合并
|
||||||
* @return void
|
* @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