CodeIgniter--CI框架源码分析(二)

上一篇文章分析了CI框架的入口文件index.php,最后说到了index.php文件的最后一行代码是引入system/core/CodeIgniter.php文件,本篇文章来分析该文件。

/*
 * ---------------------------------------
 * 为了防止跨站攻击,直接通过访问文件路径用的
 * ---------------------------------------
 */
 $assign_to_config['subclass_prefix']));
}

/*
 * ---------------------------------------
 * 设置脚本运行最大时间
 * ---------------------------------------
 */
if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
  @set_time_limit(300);
}

/*
 * ---------------------------------------
 * 载入基准测试类system/core/Benchmark.php,
 * 该类主要用于调试,可以显示程序运行时间、内存
 * 占用等等。load_class函数定义在Common.php文
 * 件中,其作用是载入并实例化所载入的类。
 * ---------------------------------------
 */
$BM =& load_class('Benchmark', 'core');
$BM->mark('total_execution_time_start');
$BM->mark('loading_time:_base_classes_start');

/*
 * ---------------------------------------
 * 载入钩子类system/core/Hooks.php,该类主要
 * 用于在不修改系统核心文件的基础上改变或增加系
 * 统的核心功能。同时在Hooks类初始化的时候引入
 * 了配置文件config.php。
 * ---------------------------------------
 */
$EXT =& load_class('Hooks', 'core');
$EXT->_call_hook('pre_system');

/*
 * ---------------------------------------
 * 其实在上面的代码中已经载入了配置类和配置文件
 * $assign_to_config可以在index.php声明定义,
 * 该数组会动态地添加替换配置文件中的值。
 * ---------------------------------------
 */
$CFG =& load_class('Config', 'core');
if (isset($assign_to_config))
{
  $CFG->_assign_to_config($assign_to_config);
}

/*
 * ---------------------------------------
 * 载入并实例化字符集类及路由类
 * ---------------------------------------
 */
$UNI =& load_class('Utf8', 'core');
$URI =& load_class('URI', 'core');

这篇文章我们暂且到这里为止,下一篇我们继续分析CI框架的源码。

你可能感兴趣的:(CodeIgniter--CI框架源码分析(二))