protected function checkCache($tmplTemplateFile) { if (!C('TMPL_CACHE_ON')) { // 优先对配置设定检测 return false; } //[sae] 不加模版目录,简化模版名称 $tmplCacheFile = md5($tmplTemplateFile) . C('TMPL_CACHFILE_SUFFIX'); if (!SaeMC::file_exists($tmplCacheFile)) { return false; //}elseif (filemtime($tmplTemplateFile) > filemtime($tmplCacheFile)) { } elseif (filemtime($tmplTemplateFile) > SaeMC::filemtime($tmplCacheFile)) { // 模板文件如果有更新则缓存需要更新 return false; } elseif (C('TMPL_CACHE_TIME') != 0 && time() > SaeMC::filemtime($tmplCacheFile) + C('TMPL_CACHE_TIME')) { // 缓存是否在有效期 return false; } // 开启布局模板 if (C('LAYOUT_ON')) { $layoutFile = THEME_PATH . C('LAYOUT_NAME') . C('TMPL_TEMPLATE_SUFFIX'); if (filemtime($layoutFile) > SaeMC::filemtime($tmplCacheFile)) { return false; } } // 缓存有效 return true; }
function load_runtime_file() { //[sae] 加载系统基础函数库 require SAE_PATH . 'Common/common.php'; //[sae] 读取核心编译文件列表 $list = array(SAE_PATH . 'Lib/Core/Think.class.php', CORE_PATH . 'Core/ThinkException.class.php', CORE_PATH . 'Core/Behavior.class.php'); // 加载模式文件列表 foreach ($list as $key => $file) { if (is_file($file)) { require_cache($file); } } //[sae] 加载系统类库别名定义 alias_import(include SAE_PATH . 'Conf/alias.php'); //[sae]在sae下不对目录结构进行检查 if (APP_DEBUG) { //[sae] 调试模式切换删除编译缓存 if (!SAE_RUNTIME && SaeMC::file_exists(RUNTIME_FILE)) { SaeMC::unlink(RUNTIME_FILE); } } }
defined('SAE_RUNTIME') or define('SAE_RUNTIME', false); require SAE_PATH . 'Lib/Core/SaeMC.class.php'; //记录开始运行时间 $GLOBALS['_beginTime'] = microtime(TRUE); // 记录内存初始使用 define('MEMORY_LIMIT_ON', function_exists('memory_get_usage')); if (MEMORY_LIMIT_ON) { $GLOBALS['_startUseMems'] = memory_get_usage(); } defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . '/'); //[sae] 判断是否手动建立项目目录 if (!is_dir(APP_PATH . '/Lib/')) { header('Content-Type:text/html; charset=utf-8'); exit('<div style=\'font-weight:bold;float:left;width:430px;text-align:center;border:1px solid silver;background:#E8EFFF;padding:8px;color:red;font-size:14px;font-family:Tahoma\'>sae环境下请手动生成项目目录~</div>'); } defined('RUNTIME_PATH') or define('RUNTIME_PATH', APP_PATH . 'Runtime/'); defined('APP_DEBUG') or define('APP_DEBUG', false); // 是否调试模式 $runtime = defined('MODE_NAME') ? '~' . strtolower(MODE_NAME) . '_sae_runtime.php' : '~sae_runtime.php'; defined('RUNTIME_FILE') or define('RUNTIME_FILE', RUNTIME_PATH . $runtime); //[sae] 载入核心编译缓存 if (!APP_DEBUG && SaeMC::file_exists(RUNTIME_FILE)) { // 部署模式直接载入allinone缓存 SaeMC::include_file(RUNTIME_FILE); } else { // ThinkPHP系统目录定义 defined('THINK_PATH') or define('THINK_PATH', dirname(dirname(dirname(__FILE__))) . '/'); //[sae] 加载运行时文件 require SAE_PATH . 'Common/runtime.php'; } }
/** * 检查缓存内容是否有效 * 如果无效则需要重新编译 * @access public * @param string $tmplContent 模板内容 * @return boolen */ protected function checkContentCache($tmplContent, $prefix = '') { return SaeMC::file_exists(C('CACHE_PATH') . $prefix . md5($tmplContent) . C('TMPL_CACHFILE_SUFFIX')); }