产品使用文档与部署教程,持续更新中
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(插件注册表)。文件读写走 app/common/model/driver/(本地 / 阿里云 OSS 等),存储节点配置在后台「存储管理」(表 sk_stores)。加新存储 = 新增一个 driver 类 + 后台选项,不要改上传控制器。
会员组(sk_groups)决定容量、单文件大小、直链额度等;策略 sk_policys 是更细的规则集合。改容量逻辑先看这两张表 + 对应的 admin 控制器。
分享表 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 的顺序手动执行或走程序内置的升级入口。