/** * 批量导入插件 * @param array $tags 插件信息 * @param boolean $recursive 是否递归合并 */ public static function import(array $tags, $recursive = true) { if ($recursive) { foreach ($tags as $tag => $behavior) { self::add($tag, $behavior); } } else { self::$tags = $tags + self::$tags; } }
/** * 批量导入插件 * @param array $data 插件信息 * @param boolean $recursive 是否递归合并 * @return void */ public static function import($tags, $recursive = true) { 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 array $tags 标签行为 * @return void */ public static function import($tags) { self::$tags = array_merge(self::$tags, $tags); }