Discuz! 7.0 是一款经典的 PHP 论坛程序,二次开发时需要对其目录结构和核心文件有清晰的了解。下面为你整理一份 Discuz! 7.0 程序二次开发必备的目录详解,方便快速定位功能模块和扩展点。


Discuz! 7.0 目录结构详解

/ (根目录)
├── admincp/          # 后台管理中心,管理后台的所有功能文件
├── api/              # 接口文件夹,第三方接入或远程调用API相关代码
├── attach/           # 上传附件目录,用户上传的图片、文件等
├── data/             # 程序运行时数据存储(缓存、配置等)
├── include/          # 核心类库和公共函数,程序核心代码所在
│   ├── cache/        # 缓存相关类和接口
│   ├── client/       # 客户端相关接口(如UCenter)
│   ├── control/      # 控制器层,实现业务逻辑
│   ├── function/     # 公共函数集
│   ├── model/        # 模型层,数据处理及数据库操作
│   └── ...           # 其他核心类文件
├── install/          # 安装程序文件,安装时使用
├── forum.php         # 论坛主入口文件,访问论坛页面主要入口
├── home.php          # 个人空间相关功能入口
├── member.php        # 会员中心入口
├── portal.php        # 文章门户相关
├── ucenter.php       # 用户中心通讯接口
├── static/           # 静态资源(CSS, JS, 图片)
├── template/         # 模板文件,前端页面展示文件
└── uc_client/        # UCenter客户端目录,用户中心集成模块

重点目录及文件说明

1. admincp/

  • 后台管理程序
  • 核心管理功能(用户管理、论坛管理、权限管理等)
  • 可二次开发自定义后台功能和插件

2. include/

  • 核心程序文件集中地
  • 核心类库(class_*.php
  • 业务控制层(control/*.php
  • 数据模型层(model/*.php
  • 公共函数(function/*.php)可添加自定义函数

3. 入口文件 (forum.phpmember.phphome.php)

  • 前端不同功能模块的入口,方便定向二次开发

4. template/

  • 前端界面模板
  • 可以根据主题更换模板,实现界面定制

5. uc_client/

  • UCenter 用户中心客户端代码
  • 用户统一登录、注册、同步消息

二次开发常用知识点

  • 钩子(Hook)机制:Discuz 7.0 支持插件钩子,能在不改核心文件的情况下插入自定义代码。二次开发推荐利用钩子减少升级风险。
  • 缓存机制:掌握 data/ 目录缓存文件的管理,可以优化性能。
  • 数据库表结构:熟悉论坛数据库结构是二次开发关键,常用表有 pre_forum_threadpre_forum_postpre_member 等。
  • 模板系统:模板文件在 template/ 目录,使用简单的模板语法,方便修改界面和添加变量。
  • UCenter 集成:用户管理模块通过 UCenter 集成,了解 UCenter 通讯协议对用户扩展功能很有帮助。

建议的二次开发步骤

  1. 环境搭建
    本地搭建 PHP + MySQL 环境,安装原版 Discuz 7.0,熟悉基本功能。
  2. 目录结构熟悉
    理解主要目录和文件,尤其是 include/ 目录核心逻辑。
  3. 小功能开发
    先尝试修改模板、添加后台小插件,熟悉钩子使用。
  4. 数据库操作
    理解模型层文件,编写自定义数据库查询及数据写入。
  5. 接口扩展
    结合 api/ 和 uc_client/,实现第三方接口或用户同步功能。
  6. 代码规范
    遵循 Discuz 代码规范,注释清晰,方便团队协作。