ThinkPHP框架的runtime分析

其中,在利用tp生成的项目目录中就有一个Runtime目录,即项目运行时目录。

在tp的入口文件中有如下:

//记录开始运行时间
$GLOBALS['_beginTime'] = microtime(TRUE);
// 记录内存初始使用
define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));
if(MEMORY_LIMIT_ON) $GLOBALS['_startUseMems'] = memory_get_usage();

判断是否有定义APP_PATH,如果没有则定义:工程名/
defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');


//定义RUNTIME_PATH常量,如果没有定义,则定义成tp/Runtime/
defined('RUNTIME_PATH') or define('RUNTIME_PATH',APP_PATH.'Runtime/');


//是否定义APP_DEBUG常量,黙认为false
defined('APP_DEBUG') or define('APP_DEBUG',false); // 是否调试模式
$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{
    // 系统目录定义
    defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
    // 加载运行时文件
    require THINK_PATH.'Common/runtime.php';
}


通过分析,第一次运行时,如果没有开通app_debug会产生runtime.php文件,以后每次运行都会判断是否开启,

并且是否有runtime文件,如果有则使用,没有则创建。


你可能感兴趣的:(ThinkPHP框架的runtime分析)