class discuz_core {
// 数据库存储引擎
var $db = null;
// 内存缓冲object
var $mem = null;
// 会话 object
var $session = null;
// 程序配置
var $config = array();
// $_G 数组的映射
var $var = array();
// 加载缓存的数组
var $cachelist = array();
// 是否初始化
var $init_setting = true;
var $init_user = true;
var $init_session = true;
var $init_cron = true;
var $init_misc = true;
var $init_memory = true;
var $init_mobile = true;
// 是否已经初始化
var $initated = false;
// 列举全局变量,为清理做准备
var $superglobal = array(
'GLOBALS' => 1,
'_GET' => 1,
'_POST' => 1,
'_REQUEST' => 1,
'_COOKIE' => 1,
'_SERVER' => 1,
'_ENV' => 1,
'_FILES' => 1,
);
/**
* 建立唯一进程
* @staticvar discuz_core $object
* @return discuz_core
*/
function &instance() {
......
}
/**
* 预处理的调用
*/
function discuz_core() {
$this->_init_env();
$this->_init_config();
$this->_init_input();
$this->_init_output();
}
/**
* 核心初始化
*/
function init() {
if(!$this->initated) {
$this->_init_db();
$this->_init_memory();
$this->_init_user();
$this->_init_session();
$this->_init_setting();
$this->_init_mobile();
$this->_init_cron();
$this->_init_misc();
}
$this->initated = true;
}
/**
* 定义PHP环境信息常量和全局变量 $_G
*
*/
function _init_env() {
......
}
/**
* 禁止对全局变量注入
* slashes 处理
* cookie 处理(去掉cookie前缀)
* 将 $_GET 与 $_POST 合并
*
*/
function _init_input() {
......
}
/**
* 加载配置文件
*
*/
function _init_config() {
......
}
/**
* 输出处理
* GET 参数跨站检测
* 防页面刷新
* gzip处理
* 字符集处理
*
*/
function _init_output() {
......
}
/**
* 禁止机器人访问
*
*/
function reject_robot() {
......
}
/**
* GET 参数跨站检测
*
* 2011-3-8 增加对 CONTENT-TRANSFER-ENCODING 代码的检测 (IE MHTML 漏洞)
*/
function _xss_check() {
......
}
/**
* 获取客户端IP
*
*/
function _get_client_ip() {
......
}
/**
* 初始化数据库类,同时选择主从数据库
*
*/
function _init_db() {
......
}
/**
* 初始化session
*
*/
function _init_session() {
......
}
/**
* 处理当前用户信息
*
*/
function _init_user() {
......
}
/**
* 设置当前用户为游客
*
*/
function _init_guest() {
......
}
/**
* 处理计划任务
*
*/
function _init_cron() {
......
}
/**
* 杂项
* 调入核心语言包
* 处理全局时区设置
* 处理被封禁用户
* 站点开关检查
* 手机端控制每页显示主题数和回帖数
* 判断并执行每日登录奖励积分
*
*/
function _init_misc() {
......
}
/**
* 加载全局设置 setting,风格 style,下一个任务 cronnextrun
*
*/
function _init_setting() {
......
}
/**
* 处理当前界面风格
* 定义风格常量
*
*/
function _init_style() {
......
}
/**
* 初始化Discuz 内存读写引擎
*
*/
function _init_memory() {
......
}
/**
* 手机访问时的开关判断,浏览器判断和相关特性
*
*/
function _init_mobile() {
......
}
/**
* 设置时区
* @param $timeoffset - 时区数值
* @return 无
*/
function timezone_set($timeoffset = 0) {
......
}
/**
* 手机转码的$_POST多层数组递归转码
* @param $value - 字符串
* @return 返回转义好的字符串
*/
function mobile_iconv_recurrence($value) {
......
}
}
分享到:
相关推荐
接下来是引入核心类库`class_core.php`,这是Discuz X2框架的核心,提供了基础的类和函数支持。然后通过`discuz_core::instance()`获取到Discuz核心对象实例,用于后续的业务逻辑处理。 在`new.php`中还定义了一个`...
4. **核心类库(Core Class Library)**:包括各种功能模块,如用户认证、帖子管理、缓存处理等,位于`class`目录中。 5. **插件与模块(Plugins & Modules)**:允许开发者扩展Discuz功能,位于`source/plugin`和`...
- **定义**:Discuz插件机制是指Discuz系统中一套完整且灵活的扩展功能实现方式,它允许开发者通过编写特定的插件代码来增强或定制Discuz的功能,而不必直接修改核心代码。 - **优势**: - **代码独立性**:插件与...
的核心函数和类,如`class_core.php`,负责处理论坛的大部分逻辑。 3. **模板文件**:定义了论坛的前端界面,如`template`目录下的不同主题模板。 4. **语言包**:`language`目录包含了多种语言的支持,其中会有...