开发文档

产品使用文档与部署教程,持续更新中

首页>文档>开发文档

云枢个人网盘系统 · 开发文档

一、技术架构

  • 框架:ThinkPHP 8 多应用(topthink/framework、think-orm、think-multi-app、think-view、think-template、think-captcha)+ aferrandini/phpqrcode(推广/分享二维码)、phpmailer/phpmailer(邮件);PHP 8.0+(推荐 8.1)/ MySQL 5.7+;
  • 多应用:app/admin(后台 16 个控制器)、app/index(前台 10 个控制器)、app/common(模型与公共层,23 个模型);
  • 插件框架:plugin/ 目录 + 库里 sk_plugins 表(2026-09-25 起的插件化框架,样例插件 plugin/directlink 直链)。

二、目录结构

程序根/
├── public/index.php      # Web 入口(public 为站点根)
├── app/
│   ├── admin/            # 后台(controller / view)
│   ├── index/            # 前台(用户中心、文件、分享、支付、回调)
│   └── common/           # 公共:model / controller / driver(存储驱动)
├── plugin/               # 插件(每个插件一个目录,如 directlink)
├── extend/Qrcode/        # 二维码扩展
├── config/               # 配置(app/cache/captcha/cookie/database/filesystem/...)
├── route/app.php         # 路由
├── docs/                 # 随包文档(功能说明/安装文档/系统介绍/系统文档 4 篇 md)
├── pan_nmymz_com.sql     # 建库脚本(初始版)
├── pan_upgrade_*.sql     # 历次升级 SQL(按日期命名,可重复执行)
├── xj_license_client.php # 授权客户端
└── xj_panel.php          # 授权验证 / 在线更新维护页

三、数据库

  • 表前缀 sk_,初始 15 张 + 历次升级新增,主要分组:
  • 用户与认证:sk_users、sk_auth、sk_oauth(第三方登录)、sk_certify(实名,配套 sk_appeals 申诉)、sk_device、sk_sms_log;
  • 文件与存储:sk_folders、sk_stores(存储节点)、sk_shares(分享)、sk_favs(收藏);
  • 会员与商业化:sk_groups(会员组/容量组)、sk_policys(策略)、sk_order、sk_reward、sk_profit / sk_profit_log(分销收益)、sk_file_purchase(付费文件)、sk_freeze(冻结结算)、sk_withdraw(提现);
  • 直链插件:sk_directlink / sk_directlink_quota / sk_directlink_traffic;
  • 其它:sk_setting、sk_record、sk_reports、sk_plugins(插件注册表)。

四、关键机制

4.1 存储驱动

文件读写走 app/common/model/driver/(本地 / 阿里云 OSS 等),存储节点配置在后台「存储管理」(表 sk_stores)。加新存储 = 新增一个 driver 类 + 后台选项,不要改上传控制器。

4.2 会员组与容量策略

会员组(sk_groups)决定容量、单文件大小、直链额度等;策略 sk_policys 是更细的规则集合。改容量逻辑先看这两张表 + 对应的 admin 控制器。

4.3 分享与付费

分享表 sk_shares,付费文件走 sk_file_purchase + 结算表 sk_freeze(冻结结算)/ sk_reward;分销收益写 sk_profit_log。

五、二次开发指引

  • 加后台菜单/页面:app/admin/controller/ + app/admin/view/(TP8 模板),后台菜单在 sk_setting/菜单表维护;
  • 加一个插件:照 plugin/directlink/ 的结构(入口类 + 钩子)复制,安装时写 sk_plugins;
  • 改库:新升级脚本放根目录(pan_upgrade_日期_序号.sql,可重复执行),并在 app/common/model/ 建同名模型;
  • 注意:xj_license_client.php / xj_panel.php 是授权与更新入口,别删改;后台控制器目录在包装包内是加密壳(未授权 403),二开请在本地明文源码上进行、不要用服务器上的壳文件当源码。

六、授权与在线更新

访问站点 /xj_panel.php 可以「验证授权 / 检查更新」;授权码存在根目录 xj_auth.php(下载时自动填入)。在线更新按分批解压执行,不会覆盖 config/、上传目录与 xj_auth.php;升级 SQL 需要按 pan_upgrade_*.sql 的顺序手动执行或走程序内置的升级入口。