chore(addon): 增强针对插件列表的处理
This commit is contained in:
@@ -33,11 +33,48 @@ class InitAddon
|
||||
$addon_model = new Addon();
|
||||
$addon_data = $addon_model->getAddonList([], 'name');
|
||||
$current_addons = $addon_data['data'];
|
||||
$current_addon_names = array_column($current_addons, 'name');
|
||||
$db_addon_names = array_column($current_addons, 'name');
|
||||
|
||||
// 1. 记录总的addon数量和名称
|
||||
$total_addons = count($current_addon_names);
|
||||
log_write("[Addon Init] 总插件数量: {$total_addons}, 插件列表: " . implode(', ', $current_addon_names), 'info');
|
||||
$total_addons = count($db_addon_names);
|
||||
log_write("[Addon Init] 从数据表addon, 获得的总插件数量: {$total_addons}, 插件列表: " . implode(', ', $db_addon_names), 'info');
|
||||
|
||||
// 2. 从addon目录读取插件列表
|
||||
$dir_addon_names = [];
|
||||
$addon_dir = 'addon/';
|
||||
if (is_dir($addon_dir)) {
|
||||
$dir_handle = opendir($addon_dir);
|
||||
if ($dir_handle) {
|
||||
while (($file = readdir($dir_handle)) !== false) {
|
||||
if ($file != '.' && $file != '..' && is_dir($addon_dir . $file)) {
|
||||
$dir_addon_names[] = $file;
|
||||
}
|
||||
}
|
||||
closedir($dir_handle);
|
||||
sort($dir_addon_names);
|
||||
}
|
||||
}
|
||||
$total_dir_addons = count($dir_addon_names);
|
||||
log_write("[Addon Init] 从addon目录, 获得的总插件数量: {$total_dir_addons}, 插件列表: " . implode(', ', $dir_addon_names), 'info');
|
||||
|
||||
// 3. 比较数据库和目录插件列表的差异
|
||||
$db_only_addons = array_diff($db_addon_names, $dir_addon_names);
|
||||
$dir_only_addons = array_diff($dir_addon_names, $db_addon_names);
|
||||
|
||||
if (!empty($db_only_addons)) {
|
||||
log_write("[Addon Init] 数据库中存在但目录中不存在的插件: " . implode(', ', $db_only_addons), 'warning');
|
||||
}
|
||||
|
||||
if (!empty($dir_only_addons)) {
|
||||
log_write("[Addon Init] 目录中存在但数据库中不存在的插件: " . implode(', ', $dir_only_addons), 'warning');
|
||||
}
|
||||
|
||||
if (empty($db_only_addons) && empty($dir_only_addons)) {
|
||||
log_write("[Addon Init] 数据库和目录中的插件列表一致", 'info');
|
||||
}
|
||||
|
||||
// 使用数据库中的插件列表进行后续处理
|
||||
$current_addon_names = $db_addon_names;
|
||||
|
||||
// 2. 记录缓存中不存在但实际存在的addon
|
||||
$cache_addon_names = [];
|
||||
|
||||
Reference in New Issue
Block a user