1.1 X5.0 是什么:架构变化与选型建议

弄清 X5.0 到底改了哪几块,再决定你的站是升级还是新装。

1.1.1 一个装了二十年的社区系统

Discuz! 由康盛集团(Comsenz)出品,是中文互联网上存量最大的社区建站系统之一。所谓"社区系统",就是一套把用户注册、发帖回帖、版块管理、积分等级、私信这些功能打包好的现成程序——你不用从零写 PHP,只要有一台能跑 PHP 和 MySQL 的服务器就能上线。

它的强项一直是"论坛 + 门户"这个组合:论坛沉淀内容与人与人的关系,门户负责展示,两者共用一套用户体系、一套后台、一套权限模型。X5.0 之前的 X3 系列在这一点上从未变过,变的只是版本号。

1.1.2 版本号怎么读

当前开源版最新版本号形如 X5.0.4.Open/Intl Release 20261001,逐段拆开看:

片段 含义 站长要关心的事
X5.0 大版本号,代表内核体系 决定你的插件和模板要不要重做
4 迭代序号,小功能与修复累积 可以跟,也可以不跟
Open 开源版;另有闭源授权的企飞版 X5.1 个人站选 Open,企业站可评估企飞版
Intl 国际版(多语言 i18n 扩展) 中文站可以忽略这个标识
Release 20261001 本次发布日 排期、备份窗口都按这个日子定

更新节奏是每月 1 日、10 日、20 日各发一期(官方称 Tri-Monthly),每三个月一次大更新;变更少的期次会跳过。对运维的意义是:不要攒到年底一次性升,磁盘上永远留一份可回滚的整站备份。

1.1.3 内核换成了 MitFrame

X5.0 最实在的变化是整个目录结构按 APP(Application,功能模块)重新归类,内核换成了全新的 MitFrame 框架体系:

source/
├── app/          X3.5 里 source/module 的活儿,按 APP 拆开
│   └── xxx/
│       ├── module/     类文件
│       ├── child/      子文件
│       └── template/   模板文件(X5 只支持 .php 后缀模板)
├── child/        全局子文件目录
├── class/        核心类库 class_core.php、class_template.php
├── function/     函数库 function_core.php
└── plugin/       插件目录
data/
├── cache/        模板缓存与数据缓存
└── plugindata/   插件数据
template/default/ 默认模板套系(cell / cells / common / forum / portal / touch / i18n / style)

打一个比方:X3.5 像一栋按"楼层"隔断的楼——机房一层、库房二层、办公室三层;X5.0 改成按"部门"划分——市场部有自己的模块、模板和子文件,市场部要改自己的东西不用惊动别的部门。source/module/ 这个老目录在 X5 里已经并入 source/app/,include/ 则被子文件机制取代。

1.1.4 七个值得知道的核心变化

变化 说明 对站长的实际影响
目录按 APP 重新归类 MitFrame 体系 改代码前先找对目录,别再翻 source/module
子文件 child 机制 插件注册后可接管系统逻辑 扩展能力上台阶,是 X5 最强的扩展点
细胞模板 {cell} 与 {cells} 含 PHP 逻辑的片段封装起来,用户在后台 DIY 组合
模板变量机制 模板自带后台配置页 换颜色、改 logo 不必再配一个插件
组件插件化 对象存储、邮件发送改由插件接管 换 SMTP、换 OSS 变成装插件,不是改核心
原生手机版 DIY touch 目录模板同样支持 DIY 区域 手机版页面也能让运营自己搭
页面组件导出 页面组件、模块组件可导入导出 好模板的布局能整套分享给别人用

1.1.5 child 机制值得多说两句

全局子文件放在 /source/child/,各 APP 的子文件放在 /source/app/xxx/child/。系统程序会自动引用对应模块的 child 文件;插件一旦注册接管,就可以完全代替原有系统逻辑。

这意味着什么?以前你改Discuz! 逻辑只能 fork 整个程序,改一处源码就再也升不了级。现在你可以让插件在指定环节接管、代理掉原逻辑,核心升级时只要插件跟上就行。对要长期维护的老站来说,这是从"改到不敢升级"变成"升级只改插件"的转折点。

1.1.6 细胞模板与模板变量

X5 新增的 {cell} 是最小封装单元,对应 template/{标识}/cell/ 下的文件(支持多级目录,扩展名固定 .htm);{cells} 再把多个 cell 封装一次,对应 template/{标识}/cells/ 目录。它的价值在于把带 PHP 逻辑的部分关起来,不让站长以外的任何人乱改,而组合权交给后台 DIY。系统内置了一批细胞模板,直接在 template/default 里搜 {cells 和 {cell 就能找全。

模板变量则完全复刻了插件变量机制:模板可以自带参数配置后台,不必再为改一个配色配一个插件。开启开发者模式后(config/config_global.php 末尾加 $_config['plugindeveloper'] = 1;),模板列表会出现"设计"按钮。

1.1.7 运行环境底线与一条红线

项 要求
PHP 开源版 PHP 8.0+;企飞版 X5.1 要求 PHP 8.2+
数据库 MySQL 5.7~9、MariaDB 10.2+
跨版本 X5.0 不再兼容 X3.5 及更早版本

环境到手先跑版本检查,比盲装完再报错省事:

php -v           # 确认 PHP ≥ 8.0
mysql -V         # 确认 MySQL/MariaDB 版本(大写 V)

这条红线要划重点:X5.0 不是 X3.5 的补丁式升级,老插件老模板需要改造。这也是下一节决策表里"老站"一栏要给足成本估算的原因。

1.1.8 X3.5 还是 X5.0:一张决策表

你的情况 建议 主要成本 不建议的做法
X3.5 老站,插件少于 10 个,模板基本没改 升X5.0 插件逐个测试改造,通常 1~2 周 直接在生产站原地覆盖升级
X3.5 老站插件多、且深度改过核心 先留在 X3.5,规划迁移 迁移等于重做,数据要单独导出校验 边升边改,出问题分不清是升级还是改动
全新个人站、博客型社区 直接 X5.0 几乎没有历史包袱 从 X3.5 起步再升级
中小型论坛,重视手机版 X5.0 无 用 X3.5 模板硬套 X5
企业内网社区,需要统一账号体系 X5.0 开源版起步,评估企飞版 X5.1 授权与二次开发 拿开源版当内网系统再自行魔改核心
需要 ES 全文搜索、原生队列、原生 AI 评估企飞版 X5.1 闭源授权成本 自己在开源版上硬堆,升级时全废

选型只有一句话:新站直接上 X5.0,老站先算清插件改造量再决定。算不清就留在 X3.5,把 X5.0 当成并行跑一个新站来验证,验证通过再切流量。