查看: 111|回复: 0

[建站资源] 解构 MitFrame 内核与 App 化开发新范式

[复制链接]

64

主题

0

回帖

210

积分

管理员

积分
210
发表于 2026-7-3 03:45:25 | 显示全部楼层 |阅读模式

一、从模块到 App:目录结构的革命性调整
在 X3.5 及更早版本中,功能代码分散在 /source/module、/source/include 等多个目录。X5.0 最大的变化是全面 App 化,所有功能模块被整合到 /source/app/ 目录下,每个应用(如 forum、group、member)拥有独立的空间。

开发者适配要点:

如果你正在将 X3.5 的插件迁移到 X5.0,需要留意路径引用的变化。X5.0 新增了 DISCUZ_PLUGIN() 和 DISCUZ_TEMPLATE() 等辅助函数,用于替代硬编码的目录路径,从而兼容未来的 Discuz!ᵂ 云版本。

调用示例:
  1. // 旧方式(X3.5)
  2. require_once './source/plugin/sample/index.php';

  3. // 新方式(X5.0)
  4. require_once DISCUZ_PLUGIN('sample').'/index.php';
复制代码


二、开发一个简单的 App 扩展
X5.0 降低了二次开发门槛。如果你想新增一个独立功能,可以直接在 /source/app/ 下创建目录并实现逻辑。

创建入口文件:在 /source/app/myapp/ 下创建 myapp.php。

初始化环境:引入核心类并初始化。
  1. <?php
  2. require './source/class/class_core.php';
  3. $discuz = C::app();
  4. $discuz->cachelist = [];
  5. $discuz->init();

  6. // 调用同目录下的子文件
  7. require_once appfile('myapp/helper');
复制代码
  • 后台管理入口:在 /source/app/myapp/admin/ 下创建文件,即可通过 admin.php?action=app&operation=myapp:xxx 访问,实现后台一体化管理。



三、拥抱 PHP 8 与多语言(i18n)
X5.0 不再兼容 PHP 7,最低要求 PHP 8.0,推荐使用 PHP 8.1-8.5 以获得最佳性能。这意味着开发者可以利用 PHP 8 的强类型、属性(Attributes)等新特性进行开发。

此外,系统内核级别支持多语言(i18n)。语言包不再强制写在 XML 中,可以直接在插件的 i18n/ 目录下管理,并支持 JS 语言包动态调用。

  1. // JS语言包调用示例
  2. alert($L('jslang')); // 对应 lang_js.php 中的定义
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信

相关侵权、举报、投诉及建议等,请发 微信: wingtsb

Powered by 纽约优选

在本版发帖
关注公众号
返回顶部