zoukankan      html  css  js  c++  java
  • Discuz X3.2源码解析 论坛模块(forum.php)转自百度

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

    forum.php 的代码并不多,结构简单。里面引用了两个文件./source/class/class_core.php 和 ./source/function/function_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'; 来把请求交给子模块来处理。代码如下图,有注释。

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

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

  • 相关阅读:
    查看服务器被动手脚
    cordova安卓sdk
    Nginx 启动报错 “/var/run/nginx/nginx.pid" failed”
    家庭里如何搭建一个互联网可访问的服务器
    Mysql5.7基于事务转为基于日志
    021 基本数据类型小结
    018 字符串类型及操作
    022 程序的控制结构
    020 实例4-文本进度条
    017 示例3-天天向上的力量
  • 原文地址:https://www.cnblogs.com/alleyonline/p/8367772.html
Copyright © 2011-2022 走看看