马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Discuz! X5.0 开发技术文档
结构概述|App 扩展|新增插件接口|新增模板接口|云插件
[size=1.3em]目录

X5,我们将开放进行到底,让它成为一个平台 结构概述目录结构Discuz! X5.0 将目录结构进行优化和改造,对文件的作用进行重新归类的同时,也彻底加强了开放性,我们把这个全新的架构命名为 MitFrame。重新整理后的目录结构见下表: [td]目录 | 含义 | / | 首页目录 | /api | API 接口目录 | /archiver | Archiver 版目录 | /source/app | APP 目录 | /source/child | 子文件目录 | /source/class | 类文件目录 | /source/data | 数据文件目录 | /source/function | 函数文件目录 | /source/index | 首页文件目录 | /source/language | 语言包文件目录 | /source/plugin | 插件目录 | /vendor | 第三方库文件 | /template | 模板目录 |
未做修改的目录本文将不做阐述 APP 目录Discuz! X5.0 将各个模块功能的包含类文件进行了合并,所有同模块的文件都在各自的目录下。
X3.5 版本的 /source/module 目录已经合并到各个 app 的子目录 /source/app/xxx/module 中。 如果您要进行 app 的扩展,可直接在 /source/app 下创建目录,然后在此目录下创建同名文件,例如 /source/app/xxx/xxx.php - <?php
- require './source/class/class_core.php';
- $discuz = C::app();
- $discuz->cachelist = [];
- $discuz->init();
- require_once appfile('yyy/zzz'); // 调用 /source/app/xxx/yyy/zzz.php 文件
/source/app/xxx 目录下可以直接创建模板文件,可用类似以下方式调用 source/app/xxx/template/tpl.php 模板文件。仅支持 php 格式是模板文件 - template('tpl', 0, 'source/app/xxx/template');
子文件目录子文件目录将 X3.5 版本的 /source/include 目录的进行了优化改造,并按照各个模块以及其子模块进行逐层命名,全局子文件位于 /source/child 目录下,各个 app 的子文件位于 /source/app/xxx/child 目录下。Discuz! X5.0 系统程序的相应模块会自动引用 child 目录中相应模块的文件,但是如果插件注册了接管,可以完全代替原有系统的逻辑。
接管方法详见 “新增插件接口”>“子文件”。 管理后台的 URL admin.php?action=app&operation=xxx:yyy 可以直接调用 /source/app/xxx/admin/yyy.php。 类文件目录类文件目录中的文件因 autoload 会自动调用,代码中只需要直接写类名即可调用到,例如下例中可直接调用到 /source/class/class_i18n.php 文件中的 class i18n{} return i18n::cmd($cmd, $langkey, $path); 对于插件类、App类的调用可通过命名空间的方式,见下表: [td]调用代码 | 文件名 | 类代码 | sample\lib_base::xxx() | /source/plugin/sample/lib/lib_base.php | namespace sample;
class lib_base {…} | sample\lib\sub_base::xxx() | /source/plugin/sample/lib/sub/sub_base.php | namespace sample\lib;
class sub_base {…} | sample\lib\sub\ssub_base::xxx() | /source/plugin/sample/lib/sub/ssub/ssub_base.php | namespace sample\lib\sub;
class ssub_base {…} | 数据文件目录存放非 PHP 且无修改权限的数据文件,X3.5 中 data/ipdata、source/include/table 的内容迁移到了此目录下。 首页文件目录此目录为 X3.5 首页的文件。因此,理论上 Discuz! X5.0 中首页只有一个 index.php 文件,其他文件是为了兼容旧版本链接而设置的跳转文件,因此所有首页文件都可用 index.php?app=xxx 的新方式访问。同时,我们也优化了插件模块文件的访问路径,当 ./source/app 中指定 app 不存在的时候,plugin.php?id=xxx:yyy 的访问路径,可用 index.php?app=xxx&module=yyy 代替。 第三方库文件为了区分系统文件和第三方文件,我们推荐所有第三方、composer 库统一放在此目录下。 版本兼容字段在 X5.0 里,应用 XML 配置文件中的 version 字段的值有以下新的注意事项: 1、字段值写法为“X5.0”,而不是“X5”;
2、“X5.0”的含义是 X5.0+,即 X5.1 版本兼容“X5.0”,但不兼容“X5.2”,因此目前无需使用类似“X5.0,X5.1,X5.2”的写法,只需写“X5.0”即可,除非应用只兼容 X5.1+,可填写“X5.1”;
3、X5.0 起不再兼容“X3.5”以及更老的版本,应用无法安装。请确保您的应用 X3.x 版应用兼容了 PHP8 后再打上“X5.0”兼容标记并进行更新发布(对于使用 X5.0 新特性的应用我们会打上额外的标签);
4、Discuz!ᵂ 版本请填写“W1.0”;
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站内容为站长个人技术研究记录或网络,不提供用户交互功能,所有内容版权归原作者所有。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|