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

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

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

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

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

 

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

    以后就是discuz_appclication(即C::app())的构建和初始化工做。在app初始化以后,开加载forum,加载论坛的主框架。而后是rss受权的,以后是运行钩子,能够理解为加载钩子。blog

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

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

    相似于 class forum extends module{} ,而后全部的事情都交由forum来处理便可,若是想重构,这却是个不错的思路。function

相关文章
相关标签/搜索