mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-06-07 04:28:11 +08:00
补充 v8 重构后的架构文档、组件说明和迁移记录,方便后续维护者理解插件边界。 主要内容: - 更新根 README,说明 v8 插件分层、系统模块、交付命令和验证流程。 - 新增组件明细、插件边界、路由分发、软删除和稳定性文档。 - 记录 Storage 合并到 System、旧 View 移除和 Helper 并入 System 的决策。 - 补充文档注释报告和后续重构计划,便于持续演进。
6.6 KiB
6.6 KiB
Storage 组件合并说明
更新概述
Storage 组件已合并到 System 组件,不再作为独立插件存在。
架构变更
变更前的架构
ThinkLibrary → Storage (独立组件)
→ System (独立组件)
变更后的架构
ThinkLibrary → System (包含 Storage 功能)
代码结构调整
原 Storage 组件位置
plugin/think-plugs-storage/ (已删除)
├── src/
│ ├── storage/
│ ├── controller/
│ └── ...
└── ...
现 Storage 功能位置
plugin/think-plugs-system/src/storage/
├── LocalStorage.php # 本地存储驱动
├── AliossStorage.php # 阿里云 OSS 驱动
├── TxcosStorage.php # 腾讯云 COS 驱动
├── QiniuStorage.php # 七牛云 Kodo 驱动
├── UpyunStorage.php # 又牛云存储驱动
├── AlistStorage.php # Alist 网络存储驱动
├── StorageManager.php # 存储管理器
├── StorageAuthorize.php # 上传授权管理
├── StorageConfig.php # 存储配置管理
└── extra/
├── mimes.php # MIME 类型配置
└── upload.js # 前端上传脚本
驱动注册表(default / global / drivers 元数据)固定在 StorageConfig::registryDefinition() 中维护,不再使用 config/storage.php;用户在各驱动下填写的密钥、地域等仍保存在 sysdata(system.storage)。
数据表归属
system_file 表
- 原归属: Storage 组件
- 现归属: System 组件
- 迁移脚本:
plugin/think-plugs-system/stc/database/20241010000001_install_system20241010.php
控制器和功能
文件管理控制器
plugin/system/src/controller/File.php- 文件管理后台页面plugin/system/src/controller/api/Upload.php- 上传 API 接口
数据模型
plugin/system/src/model/SystemFile.php- 文件数据模型
依赖关系更新
更新前的依赖
{
"require": {
"zoujingli/think-plugs-storage": "^8.0"
}
}
更新后的依赖
{
"require": {
"zoujingli/think-plugs-system": "^8.0"
}
}
各插件依赖更新
Account 组件
- 原依赖:
ThinkPlugsStorage - 现依赖:
ThinkPlugsSystem(包含 Storage 功能)
Payment 组件
- 原依赖:
ThinkPlugsStorage - 现依赖:
ThinkPlugsSystem(包含 Storage 功能)
Wemall 组件
- 原依赖:
ThinkPlugsStorage - 现依赖:
ThinkPlugsSystem(包含 Storage 功能)
Wuma 组件
- 原依赖:
ThinkPlugsStorage - 现依赖:
ThinkPlugsSystem(包含 Storage 功能)
功能说明
存储驱动管理
Storage 功能合并后,System 组件现在支持以下存储驱动:
- LocalStorage - 本地文件存储
- AliossStorage - 阿里云对象存储 OSS
- TxcosStorage - 腾讯云对象存储 COS
- QiniuStorage - 七牛云对象存储 Kodo
- UpyunStorage - 又牛云存储
- AlistStorage - Alist 网络存储(支持多种网盘)
核心功能
- 统一的 Storage 门面接口
- 多存储驱动支持和管理
- 上传授权和临时令牌生成
- 文件元数据管理
- 文件上传、删除、清理
- 文件类型统计和管理
使用示例
存储管理器使用
use plugin\system\storage\StorageManager;
// 获取存储管理器
$storage = StorageManager::instance();
// 上传文件
$result = $storage->upload($file, 'local');
// 获取文件 URL
$url = $storage->url('local', $filename);
上传授权
use plugin\system\storage\StorageAuthorize;
// 生成上传授权令牌
$auth = StorageAuthorize::mk()->buildToken([
'type' => 'image',
'xkey' => 'upload_key',
'xname' => 'filename.jpg'
]);
// 返回前端使用
return [
'token' => $auth['token'],
'url' => $auth['url']
];
存储配置管理
use plugin\system\storage\StorageConfig;
// 获取存储配置
$config = StorageConfig::get('local');
// 保存存储配置
StorageConfig::save('local', [
'root' => './public/upload'
]);
文档更新清单
已更新的文档
-
readme.md
- ✅ 删除了独立的 Storage 组件描述
- ✅ 在 System 组件中增加了存储功能说明
- ✅ 更新了架构图(删除 Storage 节点)
- ✅ 更新了各组件依赖关系
- ✅ 更新了许可证列表
-
docs/components-detail.md
- ✅ 在 System 组件中增加存储功能详细说明
- ✅ 删除独立的 Storage 章节
-
各插件
readme.md/readme.api.md- ✅ Account: 更新依赖为 System
- ✅ Payment: 更新依赖为 System
- ✅ Wemall: 更新依赖为 System
- ✅ Wuma: 更新依赖为 System
迁移步骤
对于现有项目
- 更新 composer.json
{
"require": {
"zoujingli/think-plugs-system": "^8.0"
// 删除: "zoujingli/think-plugs-storage": "^8.0"
}
}
- 更新代码引用
// 旧代码
use plugin\storage\storage\StorageManager;
// 新代码
use plugin\system\storage\StorageManager;
- 重新安装依赖
composer update
- 验证功能
# 测试上传功能
php think list | grep upload
# 检查存储配置
php think config:get storage
优势分析
架构简化
- ✅ 减少一个独立组件,降低维护成本
- ✅ 减少组件间依赖关系
- ✅ 统一系统核心功能管理
开发效率
- ✅ 文件管理和系统管理在同一代码库
- ✅ 减少跨组件调用
- ✅ 更清晰的代码组织结构
性能优化
- ✅ 减少自动加载文件数量
- ✅ 减少服务注册数量
- ✅ 降低系统启动时间
注意事项
-
命名空间变更
- 原:
plugin\storage\* - 现:
plugin\system\storage\*
- 原:
-
数据表归属
system_file表现在明确归属 System 组件- 迁移脚本在 System 的 stc/database 目录
-
配置路径
- 驱动列表与字段结构:
plugin/think-plugs-system/src/storage/StorageConfig.php内registryDefinition() - 业务侧已保存参数:sysdata,经
StorageConfig读写
- 驱动列表与字段结构:
-
向后兼容
- 建议尽快更新代码引用
- 旧命名空间可能在未来版本移除
验证清单
- Storage 组件目录已删除
- Storage 功能已合并到 System
- system_file 表归属已更新
- 所有控制器已迁移到 System
- 所有存储驱动已迁移到 System
- 各插件依赖已更新为 System
- 根 readme 已更新
- 组件详细文档已更新
- 架构图已更新
- 许可证列表已更新
更新日期
2026-03-22