`

Discuz core核心类说明

    博客分类:
  • PHP
阅读更多
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) {
		......
	}
}
分享到:
评论

相关推荐

    X2 核心类源码分析

    本文将深入探讨核心类`discuz_core`,帮助开发者更好地进行Discuz二次开发。 `discuz_core`类在Discuz框架中扮演着中心角色,它负责初始化各种组件和服务,如数据库连接、用户信息、会话管理等。通过源码分析,我们...

    discuz论坛源代码

    一、源码结构与核心组件 Discuz的源码主要由以下几个部分组成: 1. **用户界面(User Interface)**:包括前端模板文件,决定了用户在浏览器中看到的页面样式和布局。这部分通常位于`templates`目录下,不同的模板...

    Discuz开源论坛.NET版

    至于文件名称列表中的"NET开源论坛",这可能是论坛安装程序或核心组件的名称。安装这个文件,用户就可以开始搭建自己的.NET版本Discuz论坛了。安装过程中,需要注意配置数据库连接、设置管理员账号、选择合适的...

    Discuz插件制作教程

    - **Table类文件**:从Discuz!X2.5开始支持,以`table_表名.php`格式命名,位于`source/plugin/identifier/table/`目录下。 #### 五、class_core.php模块功能解析 - **环境兼容性**:对不同PHP版本和操作系统进行...

    自己学习总结的discuz x2笔记

    接下来是引入核心类库`class_core.php`,这是Discuz X2框架的核心,提供了基础的类和函数支持。然后通过`discuz_core::instance()`获取到Discuz核心对象实例,用于后续的业务逻辑处理。 在`new.php`中还定义了一个`...

    中国技术论坛(仿Discuz)_C#论坛社区程序.rar

    1. C#编程:涉及到面向对象编程,如类的设计、继承、多态性以及.NET框架的使用,包括ASP.NET MVC或ASP.NET Core用于构建Web应用程序。 2. 数据库设计:可能使用了SQL Server或其他支持.NET的数据库,如MySQL、...

    Discuz!_X2笔记.pdf

    - **source/class/class_core.php**:核心类文件,实现了单例模式,用于加载核心类。 - **source/function/function_core.php**:核心函数文件,在加载核心类时会自动加载。 - **source/function/function_cache.php...

    discuz调用函数实现同步登录与退出核心代码

    1. 引入discuz系统的核心文件`class_core.php`,这个文件是discuz系统的核心框架文件,它定义了系统运行的基本框架和流程。 2. 通过调用`discuz_core::instance()`方法获取discuz系统实例对象`$discuz`,这是操作...

    Android应用源码之企业级discuz论坛安卓苹果客户端.rar

    "Android应用源码之企业级discuz论坛安卓苹果客户端.rar" 这个标题揭示了我们要探讨的核心内容。首先,"Android应用源码"指的是Android平台上的应用程序的原始代码,它是开发者用于创建和修改应用的基础。源码对于...

    基于PHP的Discuz!X3.4繁体中文BIG520231001源码.zip

    的核心函数和类,如`class_core.php`,负责处理论坛的大部分逻辑。 3. **模板文件**:定义了论坛的前端界面,如`template`目录下的不同主题模板。 4. **语言包**:`language`目录包含了多种语言的支持,其中会有...

    安卓开发-企业级discuz论坛安卓苹果客户端.zip.zip

    因此,我们主要依据标题来理解这个项目的核心:这是一款企业级别的多平台论坛应用,旨在为Discuz! 论坛用户提供在移动设备上访问和参与社区的便利。 【标签解析】 由于标签为空,我们无法直接获取特定的技术或主题...

    【价值5000元】Cis手机模板

    首先,核心文件`core.php`是整个模板的核心组件,它包含了模板的主要功能和逻辑控制。这个文件通常包含了模板的初始化设置、数据处理、页面渲染等功能,是模板运行的基石。开发者会在这个文件中定义和调用各种函数,...

    方维分享系统模板说明(最新)

    - **core**:核心目录,包含操作类、服务类、公共函数、缓存、动态加载等多个子目录。 - **service**:服务文件,遵循类名+ .service.php的命名规则,如userinfo.service.php。 - **module**:页面显示操作文件,...

    安装Discuz X1.5网址后面带端口的解决方法

    在处理Discuz X1.5安装后网址后带端口的问题时,首先需要了解几个关键点:Discuz!X1.5是一个基于PHP的论坛系统,通常用于搭建网络社区和互动平台。在多语言环境的WEB服务器中,常常需要配置不同的服务来处理不同类型...

    Android应用源码企业级discuz论坛安卓苹果客户端.zip

    《Android应用源码解析——基于企业级Discuz论坛的安卓苹果客户端》 本文将深入探讨一个基于企业级Discuz论坛的安卓与苹果客户端的源码,通过对源码的分析,揭示其背后的开发技术和架构设计。Discuz! 是一款广泛...

    Discuz和jQuery变量名冲突的3种解决方法

    在开发基于Discuz论坛平台的模板或插件时,经常遇到的一个问题是jQuery和Discuz自身的JavaScript库之间出现变量名冲突,主要是因为两者都使用了"$"作为主要的函数调用符号。这种冲突会影响到jQuery功能的正常运行,...

    phpxi php框架 v1.0.4.zip

    `core`目录很可能是框架的核心组件,包含了如路由、控制器、模型、视图等关键组件的实现。开发者可以通过深入研究这个目录来理解框架的工作原理。 `libraries`目录通常存放框架自定义的类库和工具,这些类库可能...

    Discuzx2 开发标准流程笔记

    这是核心类文件,初始化了整个Discuz! X2的核心对象$discuz,并且运用了单例模式来确保系统中只有一个该核心对象实例。$discuz对象包含若干重要特性,比如将全局变量$_G引用到对象的var属性中,从而在对象内部通过$...

    DX1.5 手机正式版

    这里我们进到./source/class/class_core.php 看看这个核心类 首先来分别看看这些属性 var $db = null;//存储数据库对象 var $mem = null;//存储内存缓存对象 var $session = null;////存储session var $config = ...

Global site tag (gtag.js) - Google Analytics