说明
原则上来说,将这个全量安装包的文件覆盖一下已经安装的网站即可,这次搞的比较大,不想做增量覆盖包了,覆盖全量文件对插件没有影响,有一些插件我更新了一下,也放在包里了。
因为这是个个人开发的项目,可能没有那么多的精力来解决问题,希望你们可以自行用大模型来解决,我们这个程序架构很清晰,大模型很容易看懂的。
FlintHub 升级说明
版本号取自各包内
version.php。
总览
| 版本 | 升级内容(一句话) | 文件数 |
|---|---|---|
—(无 version.php) |
发行基线文件(插件清单 + 插件助手 + 安装脚本 + Nginx 配置),无代码变更 | 20 |
| V1.0.2 | 统计刷新改增量;reply_index 补 status 索引 |
9 |
| V1.0.3 | PHP 8.4 / 8.5 兼容性修复(弃用告警刷屏) | 9 |
| V1.0.10 | 可视化编辑器功能增强与缺陷修复 | 8 |
| V1.0.12 | 友情链接侧栏优化;新增侧栏钩子与插件排序;修「禁用插件仍显示空面板」 | 16 |
| V1.0.13 | 修代码块(<pre>)**「深底深字」**不可读 |
3 |
| V1.0.18 | 页面数据查询次数优化(请求级缓存复用 + 同 id 去重) | 12 |
| V1.0.20 | 安全止血 + 机制修复 + 契约断裂专项 + 批量硬化(四批,规模最大) | 97 |
| V1.0.22 | 附件体系改造 + 列表与正文图展示改造 + 回收站只读预览 | 50 |
| V1.0.23 | 后台回收站支持管理员只读预览已删帖(内容与 22 的 C 线相同,见附注) | 9 |
各版本升级内容
1.0.0-1.0.1 — 发行基线
不含 version.php 与改动说明;包内 20 个文件(app/Helpers/Plugin.php、install.php、 nginx-baota.conf、17 个 plugins/*/plugin.json)与 flinthub1.0.0.zip 逐字节一致。 → 视为 V1.0.0 的发行基线,本身不构成一次升级。
V1.0.2 · 统计改增量 + 索引补丁
- 新增帖/回帖的统计由「每次重建」改为增量累加(
runtimeIncr),并惰性注册落库。 reply_index补status索引,存量库走自动补丁。cli/worker.php与cron_trigger.php的 stats 合并节流 + 每日计数器校准兜底。- 部署注意:
queue_mode保持cron,勿改sync。
V1.0.3 · PHP 8.4 / 8.5 兼容
- 消除「每请求级」弃用告警刷屏,处理 8.5 新增弃用项。
- 新增
app/Core/SessionHandler.php;删除已废弃的curl_close()/imagedestroy()/finfo_close()调用。 - 共 7 个文件(1 新增 + 6 修改)、11 个位置,均为「删一个调用」或「补一个字符」级,无逻辑重构。
- 已在 PHP 8.4.25 / 8.5.10 实测。
V1.0.10 · 编辑器增强与修复
- 快捷键、代码块与复制按钮、删除线双向互通、i18n 英文回退。
- 修复复制按钮泄漏。
- 改
assets/js/editor.js+assets/css/editor.css,含sw.js。
V1.0.12 · 友链侧栏 + 插件排序
- 友情链接侧栏:申请友链图标 / 配色 / 留白调整。
- 新增通用侧栏钩子
sidebar_above_friend_links(PC 与移动端)。 - 插件新增全局排序权重
sort_order(含后台在线编辑)。 - 修复「禁用友链插件后前台仍显示空面板」。
V1.0.13 · 代码块「深底深字」修复
- 从网页粘贴的正文若带内联
color,落在<pre>代码块内会出现深底深字、几乎不可读。 - 新增
inCodeBlock()判定,代码块内剥离color/background-color。 - 仅改
app/Helpers/Content.php,不改动任何已存帖子内容。
V1.0.18 · 页面数据查询次数优化
- 收敛「同一请求内对 users / settings / notifications / messages / level_config 的重复查询」。
- 新增请求级缓存
app/Helpers/UserPrefs.php;Thread::decorate()按 uid/cid 去重;Points::getLevelConfig()改一次性载入整表。 - 共 10 个代码文件 +
version.php,不改动任何业务数据。
V1.0.20 · 四批集中修复(规模最大)
- A 批 · 安全止血(8 项):存储型 XSS(S-1)、分页反射型 XSS、附件上传越权、后台封禁无效、
$_GET数组参数 500、APCu 日志刷屏、密钥治理(代码侧)、幽灵路由。 - B 批 · 机制修复(7 组):计数器漂移三因同修、跨库写路径原子性、外置正文存储锁与缓存、 后台审计补全、插件设置写入权限下沉、RateLimiter 原子化,以及 Model 列白名单 / 权限默认拒绝 / 改密吊销记住登录 / 投票条件写 / 归档守卫 / 回帖事务瘦身 / CSRF 时效 /
display_errors等。 - C 批 · 契约断裂专项(9 项 + 全项目扫描):权限矩阵回跳丢版块、插件分类静默丢弃、 自动扩容阈值被改写、博客封面无法移除、搜索用户标签空白、搜索高亮双重转义、 分页丢筛选参数、私信收发件人恒为空、重置密码页误收起表单。
- D 批 · 批量硬化(D1~D9,进行中):模板引擎表达式校验绕过、
<script>/CSS 上下文口径、BASE_PATH家族收敛、不可逆操作确认下沉服务端、内容长度服务端统一校验、LIKE ESCAPE与搜索漏检、通知聚合计数、归档桶只读化与归档竞态、 模型层静态缓存加 500 条上限(并修array_shift键重置缺陷)、 GET 即写操作改 POST + CSRF(布局切换 / 通知已读 / 重建统计)、use_strict_mode真正生效、sw.js缓存名改由站点版本号派生。 - 表结构变更走
ensureColumnPatches自动补齐(notifications.agg_count、tags.name唯一索引),无迁移脚本。 - 本包不含
config.php,需按说明手工合并新增段落。
V1.0.22 · 附件体系 + 展示改造 + 回收站预览
- A 线 · 附件体系改造:上传/读取统一收敛层(
Upload单一 API);全类型按月分目录YYYY-MM/; 缩略图双档(thumb_400×300 /md_800×600);附件卡公共组件;灯箱重写;非图片附件下载计数。 - B 线 · 列表与正文图展示:列表摘要图改读缩略图;摘要图网格规范化(每行 3 个); 正文图渲染期分组;修灯箱右上角关闭按钮点击无反应。
- C 线 · 回收站只读预览:管理员可从前台只读查看已删除帖子,页面下线一切写入口; 彻底删除动作补写审计日志。
- 表结构变更:
attachments增download_count列,走ensureColumnPatches自动补列。 - 部署:覆盖 48 个代码文件 +
version.php,另需上传 9 个md_缩略图;不含sw.js、不含config.php。
V1.0.23 · 回收站只读预览(独立成包)
- 后台回收站可直接查看已删帖:此前点标题必然落到
/?msg=not_found,必须「恢复」后才能看内容。 - 前台详情页加管理员只读预览分支(
/thread/{id}?preview_deleted=1), 管理员不恢复也能看到主帖 + 全部回复 + 附件,页面内不出现任何写入口。 - 覆盖 7 个代码文件 +
version.php;不改表、不加列、不加索引、不含数据脚本。 - 既有行为一字未改:参数缺失或当前用户非管理员时,仍走原路径。
附注
通用部署要点:覆盖代码后到后台走一次「维护 → 清理缓存」; data/ 与 assets/uploads/ 绝不覆盖;config.php 各站不同,不随包分发。