网站之家技术交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1582|回复: 0

通用基础类 discuz_core

[复制链接]
发表于 2012-10-31 04:10:01 | 显示全部楼层 |阅读模式
  1. class discuz_core {

  2.         // 数据库存储引擎
  3.         var $db = null;

  4.         // 内存缓冲object
  5.         var $mem = null;

  6.         // 会话 object
  7.         var $session = null;

  8.         // 程序配置
  9.         var $config = array();

  10.         // $_G 数组的映射
  11.         var $var = array();

  12.         // 加载缓存的数组
  13.         var $cachelist = array();

  14.         // 是否初始化
  15.         var $init_setting = true;
  16.         var $init_user = true;
  17.         var $init_session = true;
  18.         var $init_cron = true;
  19.         var $init_misc = true;
  20.         var $init_memory = true;
  21.         var $init_mobile = true;

  22.         // 是否已经初始化
  23.         var $initated = false;

  24.         // 列举全局变量,为清理做准备
  25.         var $superglobal = array(
  26.                 'GLOBALS' => 1,
  27.                 '_GET' => 1,
  28.                 '_POST' => 1,
  29.                 '_REQUEST' => 1,
  30.                 '_COOKIE' => 1,
  31.                 '_SERVER' => 1,
  32.                 '_ENV' => 1,
  33.                 '_FILES' => 1,
  34.         );

  35.         /**
  36.          * 建立唯一进程
  37.          * @staticvar discuz_core $object
  38.          * @return discuz_core
  39.          */
  40.         function &instance() {
  41.                 ......
  42.         }

  43.         /**
  44.          * 预处理的调用
  45.          */
  46.         function discuz_core() {
  47.                 $this->_init_env();
  48.                 $this->_init_config();
  49.                 $this->_init_input();
  50.                 $this->_init_output();
  51.         }

  52.         /**
  53.          * 核心初始化
  54.          */
  55.         function init() {
  56.                 if(!$this->initated) {
  57.                         $this->_init_db();
  58.                         $this->_init_memory();
  59.                         $this->_init_user();
  60.                         $this->_init_session();
  61.                         $this->_init_setting();
  62.                         $this->_init_mobile();
  63.                         $this->_init_cron();
  64.                         $this->_init_misc();
  65.                 }
  66.                 $this->initated = true;
  67.         }

  68.         /**
  69.          * 定义PHP环境信息常量和全局变量 $_G
  70.          *
  71.         */
  72.         function _init_env() {
  73.                 ......
  74.         }

  75.         /**
  76.          * 禁止对全局变量注入
  77.          * slashes 处理
  78.          * cookie 处理(去掉cookie前缀)
  79.          * 将 $_GET 与 $_POST 合并
  80.          *
  81.         */
  82.         function _init_input() {
  83.                 ......
  84.         }

  85.         /**
  86.          * 加载配置文件
  87.          *
  88.         */
  89.         function _init_config() {
  90.                 ......
  91.         }

  92.         /**
  93.          * 输出处理
  94.          * GET 参数跨站检测
  95.          * 防页面刷新
  96.          * gzip处理
  97.          * 字符集处理
  98.          *
  99.         */
  100.         function _init_output() {
  101.                 ......
  102.         }

  103.         /**
  104.          * 禁止机器人访问
  105.          *
  106.         */
  107.         function reject_robot() {
  108.                 ......
  109.         }

  110.         /**
  111.          * GET 参数跨站检测
  112.          *
  113.          * 2011-3-8 增加对 CONTENT-TRANSFER-ENCODING 代码的检测 (IE MHTML 漏洞)
  114.          */
  115.         function _xss_check() {
  116.                 ......
  117.         }

  118.         /**
  119.          * 获取客户端IP
  120.          *
  121.          */
  122.         function _get_client_ip() {
  123.                 ......
  124.         }

  125.         /**
  126.          * 初始化数据库类,同时选择主从数据库
  127.          *
  128.          */
  129.         function _init_db() {
  130.                 ......
  131.         }

  132.         /**
  133.          * 初始化session
  134.          *
  135.          */
  136.         function _init_session() {
  137.                 ......
  138.         }

  139.         /**
  140.          * 处理当前用户信息
  141.          *
  142.          */
  143.         function _init_user() {
  144.                 ......
  145.         }

  146.         /**
  147.          * 设置当前用户为游客
  148.          *
  149.          */
  150.         function _init_guest() {
  151.                 ......
  152.         }

  153.         /**
  154.          * 处理计划任务
  155.          *
  156.          */
  157.         function _init_cron() {
  158.                 ......
  159.         }

  160.         /**
  161.          * 杂项
  162.          * 调入核心语言包
  163.          * 处理全局时区设置
  164.          * 处理被封禁用户
  165.          * 站点开关检查
  166.          * 手机端控制每页显示主题数和回帖数
  167.          * 判断并执行每日登录奖励积分
  168.          *
  169.         */
  170.         function _init_misc() {
  171.                 ......
  172.         }

  173.         /**
  174.          * 加载全局设置 setting,风格 style,下一个任务 cronnextrun
  175.          *
  176.         */
  177.         function _init_setting() {
  178.                 ......
  179.         }

  180.         /**
  181.          * 处理当前界面风格
  182.          * 定义风格常量
  183.          *
  184.         */
  185.         function _init_style() {
  186.                 ......
  187.         }

  188.         /**
  189.          * 初始化Discuz 内存读写引擎
  190.          *
  191.         */
  192.         function _init_memory() {
  193.                 ......
  194.         }

  195.         /**
  196.         * 手机访问时的开关判断,浏览器判断和相关特性
  197.         *
  198.         */
  199.         function _init_mobile() {
  200.                 ......
  201.         }

  202.         /**
  203.         * 设置时区
  204.         * @param $timeoffset - 时区数值
  205.         * @return 无
  206.         */
  207.         function timezone_set($timeoffset = 0) {
  208.                 ......
  209.         }

  210.         /**
  211.         * 手机转码的$_POST多层数组递归转码
  212.         * @param $value - 字符串
  213.         * @return 返回转义好的字符串
  214.         */
  215.         function mobile_iconv_recurrence($value) {
  216.                 ......
  217.         }
  218. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|网站之家技术交流论坛 ( 粤ICP备09092995号 )

GMT+8, 2024-12-22 23:16 , Processed in 0.083587 second(s), 9 queries , File On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表