Codeigniter框架入口文件很简单,主要是配置开发环境,定义目录常量,加载CI的核心类core/CodeIgniter.php,看下面详细分析:
<?php
/** http://www.phpddt.com版权所有 */
/*
*定义应用开发环境,如development,testing,production。会提供不同的PHP错误报告级别
*/
define('ENVIRONMENT', 'development');
if (defined('ENVIRONMENT'))
{
switch (ENVIRONMENT)
{
case 'development':
error_reporting(E_ALL);
break;
case 'testing':
case 'production':
error_reporting(0);
break;
default:
exit('The application environment is not set correctly.');
}
}
/**
* 定义系统和应用的目录,你当然可以自定义哦。
*/
$system_path = 'system';
$application_folder = 'application';
/**
* 规范会路径,并判断是否存在,不存在则报错退出
*/
// PHP CLI方式运行
if (defined('STDIN'))
{
chdir(dirname(__FILE__));
}
if (realpath($system_path) !== FALSE)
{
$system_path = realpath($system_path).'/';
}
// ensure there's a trailing slash
$system_path = rtrim($system_path, '/').'/';
// Is the system path correct?
if ( ! is_dir($system_path))
{
exit("Your system folder path does not appear to be set correctly. Please open the following file and correct this: ".pathinfo(__FILE__, PATHINFO_BASENAME));
}
/*
* 定义一些目录常量哦
*/
// 定义入口文件名,默认是index.php啊
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));
//文件扩展名
define('EXT', '.php');
//系统目录常量: 统一以/为目录分隔符(windows可能会以\分割目录,所以要替换掉,注意转义)
define('BASEPATH', str_replace("\\", "/", $system_path));
//前端控制器路径常量,也就是默认入口文件的那个目录
define('FCPATH', str_replace(SELF, '', __FILE__));
// 系统核心目录名
//这里分析下:trim(BASEPATH, '/')是去掉首尾的/
//strrchr()是或最后一个/开始到结尾的字符串,默认是/system
//最后再trim当然是去掉/了,默认就是system
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));
/**
* 定义应用目录常量
*/
//如果应用目录在当前目录直接定义常量成功了
if (is_dir($application_folder))
{
define('APPPATH', $application_folder.'/');
}
else
{
//如果不是当前目录就判断配置的该目录相对于CI系统目录是否存在,不存在,你就完了,存在下面继续定义
if ( ! is_dir(BASEPATH.$application_folder.'/'))
{
exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
}
define('APPPATH', BASEPATH.$application_folder.'/');
}
/*
*前面都是定义环境和定义常量,现在就加载CI核心文件了,真正开始CI之旅
*/
require_once BASEPATH.'core/CodeIgniter.php';
CI框架源码完全分析之入口文件index.php
最新推荐文章于 2021-03-19 02:38:33 发布