Discuz X3.2源码解析 论坛模块(forum.php)

 时间:2024-10-14 00:17:07

论坛的主页面为forum.php,论坛的各个功能都以此为入口,然后请求参数mod指定子模块。

forum.php 的代码并不多,结构简单。里面引用了两个文件./source/class/class_core.php 和./source/function/function_forum.php。

Discuz X3.2源码解析 论坛模块(forum.php)

class_core.php 封装了discuz_application,封装了discuz运行环境的初始化工作。(后面专门讨论这个)

function_forum.php 里面基本都是与论坛相关的各个功能。

$modarray 、 $modcachelist定义了各个子模块的名称。

之后就是discuz_appclication(即C::app())的构建和初始化工作。在app初始化之后,开加载forum,加载论坛的主框架。然后是rss授权的,之后是运行钩子,可以理解为加载钩子。

最后require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php'; 来把请求交给子模块来处理。代码如下图,有注释。

Discuz X3.2源码解析 论坛模块(forum.php)

从forum.php来看,对discuz基本运行环境就行了封装,封装为C::app()。但对forum来说,依然是代码式、函数式的。既然模块都划分处理了,完全可以定义一个forum的模块类,然后实例化来处理请求。

类似于class forum extends module{} ,然后所有的事情都交由forum来处理即可,如果想重构,这倒是个不错的思路。

  • 如何将Javaweb项目部署到服务器
  • Failed to initialize end point associated
  • linux下git服务器如何限制用户权限
  • 如何安装intellij idea所需svn
  • Linux上使用tar或者zip打包加密文件
  • 热门搜索
    用word怎么画图 张骞是哪里人 太阳金字塔坐落在哪里 西递宏村旅游 如何瘦小腹 内蒙古 旅游 卡西欧的手表怎么样 如何起名 中国手机如何注册推特 如何取消电脑开机密码