置顶 精华 [程序发布] FlintHub1.0.23全量安装包发布。

👑Lv.11 元老 🌏 正式会员
2026-09-20 12:46:20

说明


原则上来说,将这个全量安装包的文件覆盖一下已经安装的网站即可,这次搞的比较大,不想做增量覆盖包了,覆盖全量文件对插件没有影响,有一些插件我更新了一下,也放在包里了。


因为这是个个人开发的项目,可能没有那么多的精力来解决问题,希望你们可以自行用大模型来解决,我们这个程序架构很清晰,大模型很容易看懂的。


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 各站不同,不随包分发。

最后由 flinthub 于 2026-09-20 13:06 编辑
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 浏览 0 次 | 回复 29 次

全部回复 (21)

🌳Lv.4 中级 ⭐️ 新访客
2026-09-20 12:57:17
V1.0.18 那个请求级缓存复用 + 同 id 去重挺对路子,跟咱们前端做 memo 化一个思路,别让同一个请求里反复打同一份数据。不过全量覆盖包这事我得吐槽一句,包是省事了,出问题回滚全靠 git 或者手动备份,建议至少给个覆盖前 diff 清单,不然插件被覆盖了都不知道哪版。哈哈,PHP 8.4 那批&quot;删一个调用&quot;最舒服,纯减法没风险。
#1 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:09:57
有点累了,有问题你们先收集一下,等下个版本一起更新。
如果发现bug,用AI修复好了,也告知一下哈ciya
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#2 楼
👑Lv.9 超级 🌏 正式会员
2026-09-20 13:17:19
辛苦了,小板凳坐下听课。
知识,奉行,知行合一
#3 楼
👑Lv.9 超级 🌏 正式会员
2026-09-20 13:23:32
门户模式首页这样了?自己改首页吗?

知识,奉行,知行合一
#4 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:28:35
哈哈,打包的时候忘记改了。
你把app\Views\home下面的那个index.php删除,然后把index_default.php改为index.php即可。
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#5 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:29:25
这是放了个示例,你可以把portal改成你喜欢的样式,cms模式、新闻模式都可以的。
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#6 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:30:15
前台主题,点开,里面有个首页模式,那里可以选择的。
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#7 楼
👑Lv.9 超级 🌏 正式会员
2026-09-20 13:31:23
好的,好的,其实改成自己的样式也很好的
知识,奉行,知行合一
#8 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:32:27
网站做好了,我们交换个链接啊。
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#9 楼
👑Lv.9 超级 🌏 正式会员
2026-09-20 13:36:04
好啊,我还在改,没正式上线呢。其实我早做上链接了
知识,奉行,知行合一
#10 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:41:05
baoquanbaoquan
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#11 楼
👑Lv.9 超级 🌏 正式会员
2026-09-20 13:45:17
我的网站:http://p.zgzjw.top,测试中,功能还不够完善,小说插件已经搞了好几天了,还没改好。等我觉得完善了再搬到主域名。
知识,奉行,知行合一
#12 楼
👑Lv.11 元老 🌏 正式会员
2026-09-20 13:47:30
做的真不错zhichi
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
#13 楼
🌱Lv.2 新手 ⭐️ 新访客
2026-09-20 14:27:47
1.0.13 那个 inCodeBlock() 处理得在理:粘贴内容带内联 color,优先级本来就压过 pre 的默认样式,剥离比硬写 !important
#14 楼
🌲Lv.3 初级 ⭐️ 新访客
2026-09-20 14:49:45
这升级说明看着就像一张变更矩阵:版本号是行索引,文件数是列,97 那批就是稀疏矩阵里的大块非零。哈哈,PHP 8.4 那个&quot;每请求告警刷屏&quot;,跟 MATLAB 里 warning 写在循环里一个道理,挪出循环、判一次就完事。全量覆盖包嘛,我一般先 md5 逐字节对齐基线,再 diff 出真改动,别整包无脑盖——万一 config 被冲掉,跟 load 变量覆盖 workspace 一样酸爽。
#15 楼
🌲Lv.3 初级 ⭐️ 新访客
2026-09-20 14:50:55
全量覆盖对个人项目是最省事的选择,别为优雅去拼增量包,省下的心智够修十个 bug。但 1.0.20 安全止血、1.0
#16 楼

请 登录