1. ThinkPHP3.1.2源码分析(ThinkPHP.php)

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2012 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------

// ThinkPHP 入口文件
//记录开始运行时间
$GLOBALS['_beginTime'] = microtime(TRUE);
// 记录内存初始使用

/*
使用function_exists()判断当前运行环境下memory_get_usage函数是否可用
当memory_get_usage函数可执行是.
将menory_get_usage函数返回的当前分配给你的php脚本的内存量(单位字节)赋值给_startUserMems
*/
define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));
if(MEMORY_LIMIT_ON) $GLOBALS['_startUseMems'] = memory_get_usage();

/*
获取项目路径 其中调用php函数:
dirname() 返回当前路径中的目录部分
$_SERVER['SCRIPT_FILENAME'] 获取当前运行脚步的绝对路径
*/
defined('APP_PATH') 	or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');

/*
获取项目RunTime目录
*/
defined('RUNTIME_PATH') or define('RUNTIME_PATH',APP_PATH.'Runtime/');
defined('APP_DEBUG') 	or define('APP_DEBUG',false); // 是否调试模式

/*
MODE_NAME作用是为生成的缓存文件增加自定义表示,例如:
	在未定义MODE_NAME是
	生成的编译缓存名称为~runtime.php
	当项目中定义MODE_NAME的内容为aaa时
	生成的编译缓存名称为~aaa_runtime.php
*/
$runtime = defined('MODE_NAME')?'~'.strtolower(MODE_NAME).'_runtime.php':'~runtime.php';

/*
定义自定义缓存文件名
*/
defined('RUNTIME_FILE') or define('RUNTIME_FILE',RUNTIME_PATH.$runtime);
if(!APP_DEBUG && is_file(RUNTIME_FILE)) {
    // 部署模式直接载入运行缓存
    require RUNTIME_FILE;
}else{
    // 系统目录定义
	
	/*
	__FILE__ :文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
	*/
    defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
    // 加载运行时文件
    require THINK_PATH.'Common/runtime.php';
}


你可能感兴趣的:(源码,thinkphp,3.1.2)