其中,在利用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文件,如果有则使用,没有则创建。