class core.php,discuz 3.x 核心文件class_core.php解析

本文详细解析了Discuz 3.x版本的核心文件class_core.php,包括常量定义、自定义异常处理、自动加载类函数以及C::createapp()方法的执行,该方法用于初始化论坛环境并创建discuz_application类对象。此外,还介绍了discuz_application类的构造函数,用于设置环境变量、初始化配置、处理输入和输出。
摘要由CSDN通过智能技术生成

class_core.php是discuz 3.x的核心文件,几乎所有PHP脚本都有引用此文件初始化论坛运行环境。以下解析引用3.2版discuz。

line 12-15:常量定义

IN_DISCUZ: true  //用于防止内部PHP引用文件被直接调用。

DISCUZ_ROOT: E:\project\discuz\    //论坛所在的物理路径

DISCUZ_CORE_DEBUG: false              //核心代码是否测试模式

DISCUZ_TABLE_EXTENDABLE: false        //未知

line 17: 设置自定义异常处理功能

处理方法位于:core::handleException静态方法。

line 24-30:定义自动加载类函数 该方法位于:core::autoload($class)

if(function_exists('spl_autoload_register')) {

spl_autoload_register(array('core', 'autoload')); //自动加载类函数

} else{function __autoload($class) {return core::autoload($class);

}

}

该方法简述:引用./source/class/文件夹下的类文件。方法参数为类名称,类名称如有_下划线,则前缀为子文件夹名称,后缀为文件夹名_类名。 ./source/class/子文件夹/子文件夹名_类 例:$class = "discuz_base",则引用类文件为: ./source/class/discuz/discuz_base.php 所有引用过的文件名都存储在core::imports数组内。

line 33:执行C::createapp()静态方法.

C::creatapp();

该方法为最重要的方法,是初始化论坛的方法,该方法创建discuz_application类对象,使用单一工厂模式。 discuz_application类位于: ./source/class/discuz/discuz_application.php

C::createapp()方法不直接创建discuz_application类实例,而是通过执行discuz_application::instance()静态方法间接创建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值