codeigniter源码分析

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 */


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值