[开发]FlintHub(原 SoSite)— MySQL 残留清理 + 品牌重命名检查结果与改造计划

👑Lv.11 元老 🌞 骨干会员
2026-10-24 00:12:14

本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:暂存20260913/docs/品牌重命名与MySQL清理改造计划 (2).md。

FlintHub(原 SoSite)— MySQL 残留清理 + 品牌重命名检查结果与改造计划

文档状态:待确认(2026-08-13)

目标:① 清理全部 MySQL 相关残留(纯 SQLite 化收尾)② 品牌重命名:sosite → flinthub,so(sosite 缩写)→ fh ③ 版本号统一为 1.0.0

原则:只改代码/注释/配置/文档,不改用户数据(data/extern/、data/bucket/ 中帖子正文属用户内容,含历史 SoSite/MySQL 字样,一律不动)


一、MySQL 残留清单(已全库扫描确认)

1.1 活动代码残留

#文件残留内容处置
M1app/Helpers/Search.php整段 MySQL FULLTEXT 死代码:initFTS()/isFTSAvailable()(查 information_schema.statistics,SQLite 下必然失败)、searchMySQLFulltext()(私有,无调用方,MATCH...AGAINST 语法)、rebuildFTS()(@deprecated 无调用方,ALTER TABLE ... FULLTEXT 在 SQLite 必报错)、syncThreadFTS()/syncBlogFTS()(空实现 + MySQL 注释)删除死代码;sync*FTS 有 6 处调用点(PostController/ThreadController/BlogController/Admin ThreadController)→ 一并删除方法与调用点
M2app/Core/Database.php:4注释「原 Database(MySQL 单例 PDO)重写为 SplitDB 门面」注释改写(历史说明 → 直接描述当前门面)
M3app/Views/admin/index.php:146硬编码「数据库: MySQL」改为「SplitDB(SQLite 分片)」(与 DashboardController 一致)
M4app/Views/admin/maintenance.php:12$dbType = $this->getData('dbType', 'mysql') 默认值 mysql,且 MaintenanceController 从未传 dbType → 页面恒显 mysql视图改默认/删字段,或控制器传值
M5cli/migrate.php旧 MySQL 迁移脚本(MIGRATE_DB_* 环境变量 / fastbb 默认连接 / MySqlMigrateSource)决策点:迁移工具本身功能即「连旧 MySQL」——保留(作为历史迁移工具)还是删除?建议保留,但加注释声明为一次性工具
M6cli/migrate_plugins.php同上(插件表迁移)同上
M7protected/database/legacy/旧 MySQL 初始化死代码归档(init.php/install.php/schema.sql,含 DB_HOST/pdo_mysql 等)决策点:P0 曾决策「保留安全备份供查阅」;若彻底清理可删除,建议保留(不属活动源码,无风险)
M8update/ 镜像目录与根目录同步的 M1~M4 同类残留(Search.php 等 65+ 处)与根目录同步修改(哈希比对)
M9文档(说明.md、update/CHANGELOG.md、各计划 md)历史记录中的 MySQL 描述(迁移过程、DB_* 配置等)属历史档案,建议保留原样(可选标注「历史」)
—data/extern/、data/bucket/帖子正文 HTML 中含 MySQL/DB_TYPE=mysql 字样用户数据,不动

1.2 已确认无残留

  • config.php:已无 DB_TYPE/DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASS/DB_CHARSET(仅 SPLITDB_DATA_PATH/SPLITDB_BUCKET_SIZE)
  • install.php:全 SQLite 化(smoke_install.php 有断言「无 MySQL 残留」)
  • app/Controllers/Admin/DashboardController.php:getDbVersion() 已改 sqlite_version()

二、sosite → flinthub 字样分布(已统计)

2.1 统计

范围数量说明
根目录 PHP 文件181 个绝大多数是文件头注释 SoSite — 轻量级 PHP 社区系统
update/ 镜像 PHP 文件65 个与根目录同步
资源/视图/配置若干见下方明细

2.2 关键功能位(非注释,改动需谨慎)

#位置现状改动
B1config.phpdefine('SOSITE_VERSION', 'V1.0.0')常量改名 FLINTHUB_VERSION(或保留常量名仅改值——决策点)
B2config.phpMAIL_PASS_KEY = 'SoSite_AES_Key_2026!@#...'⚠️ 高风险:此值是 AES-256 加密密钥,改名会破坏已加密的 SMTP 密码(无法解密)。改或留需确认
B3config.phpMAIL_FROM_NAME = 'SoSite 论坛'、DEFAULT_SITE_NAME = 'SoSite 精品论坛'改 FlintHub;注意站点名存于 DB settings,改常量只影响新装/默认
B4install.php模板 SOSITE_VERSION、'SoSite 安装向导'、'V1.0.0'同步改
B5app/Controllers/Admin/DashboardController.php['label' => 'SoSite 版本', ...]改 FlintHub 版本
B6app/Views/layouts/main.phpfooter sosite-badge.svg、基于 SoSite 构建、基于SoSite SOSITE_VERSION改 flinthub-badge.svg + 文案
B7根目录 sosite-badge.svg文件名含 sosite改名 flinthub-badge.svg(同步 B6 引用)
B8app/Views/admin/settings_basic.phpplaceholder 如 /sosite改 如 /flinthub
B9类名SoSiteMailer ×2、SoSiteCaptcha_ ×1改 FlintHubMailer / FlintHubCaptcha(同步全部引用)
B10文档说明.md(sosite-plugin-dev/ 引用、SoSite-插件仓库开发计划.md)⚠️ 扫描确认 sosite-plugin-dev/ 目录不存在(文档引用悬空);相关 md 文件名/内容改或不改需确认

2.3 批量注释头(低风险)

  • 181 个根目录 PHP 文件头 SoSite — 轻量级 PHP 社区系统 → FlintHub — 轻量级 PHP 社区系统
  • 对应 update/ 镜像 65 个文件
  • 插件文件头 @package Plugin\... 不含 SoSite(命名空间是 Plugin\Xxx),无需改

三、so(sosite 缩写)→ fh 使用点(已确认,未误扫普通单词)

说明:只改「作为 sosite 缩写」的 so。普通英文词(some/sort/soft…)、sosite 全名、SOSITE 全名常量不在此列。已确认无 so_ PHP 标识符、无 so- CSS 类、无 Plugin\So 命名空间、无 /so URL。

#位置现状改动
S1assets/lib/sostate.js文件名 + 文件头注释(SoSite 前端状态管理、SoState)改名 fhstate.js + 头注释 FlintHub/FhState(⚠️ 实际指令前缀是 x-(Alpine),非 s-,注释里「统一 s- 前缀」是过时设计说明)
S2assets/lib/soajax.js文件名 + 头注释(SoSite AJAX、SoAjax)改名 fhajax.js + 头注释(实际 hx- 前缀,htmx)
S3app/Views/layouts/main.php引用 lib/sostate.js、lib/soajax.js,注释 SoState (Alpine.js)、SoAjax (htmx)同步 S1/S2
S4install.php<script src="/assets/lib/sostate.js">同步
S5update/ 镜像update/app/Views/layouts/main.php、update/install.php同步
S6文档说明.md、update/CHANGELOG.md、update/队列调度模式改造执行计划.md 提及 sostate.js/SoState/SoAjax同步或保留历史


四、版本号现状(已确认)

#位置现状处置
V1config.phpSOSITE_VERSION = 'V1.0.0'✓ 已是 1.0.0
V2install.php 模板 + 安装向导页V1.0.0✓ 已是 1.0.0
V3update/install.phpV1.0.0✓ 同步
V4protected/database/legacy/install.phpV5.0.0旧归档,不动
V516 个插件 plugin.json各自版本(1.0.0~2.0.0)插件独立版本,不动
V6app/Helpers/Plugin.php默认 '1.0.0'(插件版本默认值)不动
V7app/Views/layouts/main.phpfooter SOSITE_VERSION随 B1 常量改名同步

结论:系统版本已是 1.0.0,无需改值;仅当 B1 决策「常量改名 FLINTHUB_VERSION」时,需同步 V1/V2/V7 及 DashboardController 引用。


五、改造执行计划(待确认后串行,每步自测)

#任务交付物验证方式
P1MySQL 死代码清理:Search.php 删 initFTS/isFTSAvailable/searchMySQLFulltext/rebuildFTS + syncThreadFTS/syncBlogFTS 及 6 处调用点;admin/index.php 数据库文案;maintenance.php dbType;Database.php 注释4 个活动文件php -l;搜索无 `mysql
P2常量/配置/视图品牌位(B1~B9):FLINTHUB_VERSION(若确认改名)、MAIL_FROM_NAME、DEFAULT_SITE_NAME、安装向导、Dashboard、footer、badge.svg 改名、settings placeholder、SoSiteMailer/Captcha 类名config/install/views/assets页面渲染正常;php -l;grep 确认功能位无 sosite
P3批量注释头替换:181 个根目录 PHP + 65 个 update 镜像文件头 SoSite — → FlintHub —批量替换抽样 diff;php -l 全过
P4so→fh:sostate.js→fhstate.js、soajax.js→fhajax.js + 引用点(layouts/main、install.php)+ 注释 SoState→FhState/SoAjax→FhAjax2 个改名文件 + 引用点前端 SoState/SoAjax 功能走查(投票/分页/htmx 局部刷新)
P5决策项收尾:M5/M6 迁移脚本去留、M7 legacy 去留、B2 MAIL_PASS_KEY 改否、B10 文档引用—与用户确认后执行
P6交付:update/ 镜像同步 + CHANGELOG.md 追加交付物与根目录 diff 一致;php -l 全过;全库 grep 复检


六、风险与红线

  1. B2 MAIL_PASS_KEY 谨慎:改值 → 已存 SMTP 密码全部无法解密(历史坑)。建议不改(内部密钥常量,非品牌展示位),或确认后同步迁移密码
  2. B1 常量改名牵连:SOSITE_VERSION 改名需同步 DashboardController、layouts footer、install.php 模板三处;漏改即报未定义常量
  3. S1/S2 文件改名牵连:改名后所有引用点(2 个视图 + 1 个 install.php)必须同步,否则前端 JS 加载 404
  4. 用户数据红线:data/extern/、data/bucket/ 中帖子正文含 SoSite/MySQL 字样 → 绝不批量替换(会破坏帖子内容)
  5. 插件版本号不动:plugin.json 版本与系统版本独立,勿混改
  6. 全部文件 UTF-8 no BOM + LF;php -l 校验;update/ 镜像哈希比对同步

七、待用户确认点

  1. B1:系统版本常量是否改名 SOSITE_VERSION → FLINTHUB_VERSION?(推荐改,品牌彻底;风险见六-2)
  2. B2:MAIL_PASS_KEY(AES 密钥,含 SoSite 字样)是否改名?(推荐不改,避免破坏已存 SMTP 密码)
  3. M5/M6:cli/migrate.php、cli/migrate_plugins.php(旧 MySQL 迁移工具)保留还是删除?
  4. M7:protected/database/legacy/(旧 MySQL 归档)保留还是删除?
  5. B10:文档中 sosite-plugin-dev/(目录实际不存在)与 SoSite-插件仓库开发计划.md 的引用如何处理?
  6. 范围:update/ 镜像与文档 md(历史记录)是否同步改名,还是仅活动代码?

确认后按 P1→P6 串行执行;未确认项默认按「推荐」执行。

轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 瀏覽 5 次 | 回覆 0 次

全部回覆 (0)

暫無回覆

請 登入