codeIgniter项目一般文件结构如下,其入口文件为最外部的index.php.
Index.php
Index.php入口文件主要为定义需要的常量,
同时引导进入系统核心文件system/core/CodeIgniter.php.
$system_path ,$application_folder为配置变量,分别设置系统目录与应用目录。
Index.php中出现的几个常量含义
SYSDIR:系统文件夹名称(system)
BASEPATH:系统文件路径(D:/wamp/www/codeigniter/system/)
FCPATH:入口文件路径(D:\wamp\www\codeigniter\)
APPPATH: 应用路径D:/wamp/www/codeigniter/system/application/
在index.php的最后,通过
require_once BASEPATH.'core/CodeIgniter.php'
将逻辑跳转到系统核心文件中。index.php源码如下:
<?php
define('ENVIRONMENT', 'development');
/*
*---------------------------------------------------------------
* ERROR REPORTING
*---------------------------------------------------------------
*
* Different environments will require different levels of error reporting.
* By default development will show errors but testing and live will hide them.
*/
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';
// Set the current directory correctly for CLI requests
if (defined('STDIN'))
{ //dirname() 函数返回路径中的目录部分。chdir() 函数把当前的目录改变为指定的目录。
chdir(dirname(__FILE__));
}
// echo __file__;
// echo '<br>';
// echo 'chdir(\'\') site:'.dirname(__FILE__);
if (realpath($system_path) !== FALSE)
{
$system_path = realpath($system_path).'/';
}
echo realpath('application').'';
// 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));
}
// The name of THIS file
define('SELF', pathinfo(__FILE__,PATHINFO_BASENAME));
// The PHP file extension
// this global constant is deprecated.
define('EXT', '.php');
// Path to the system folder
define('BASEPATH', str_replace("\\", "/", $system_path));
echo BASEPATH.'<br>';
// Path to the front controller (this file)
define('FCPATH', str_replace(SELF, '', __FILE__));
echo FCPATH. ' asca<br>';
// Name of the "system folder"
define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));
echo SYSDIR.' sysdir<br> '.BASEPATH;
// The path to the "application" folder
if (is_dir($application_folder))
{
define('APPPATH', $application_folder.'/');
}
else
{
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.'/');
}
echo APPPATH;
require_once BASEPATH.'core/CodeIgniter.php';
/* End of file index.php */
/* Location: ./index.php */