public function run(&$_data) { $engine = strtolower(C('TMPL_ENGINE_TYPE')); if ('think' == $engine) { //[sae] 采用Think模板引擎 if ($this->checkCache($_data['file'])) { // 缓存有效 SaeMC::include_file(md5($_data['file']) . C('TMPL_CACHFILE_SUFFIX'), $_data['var']); } else { $tpl = Think::instance('ThinkTemplate'); // 编译并加载模板文件 $tpl->fetch($_data['file'], $_data['var']); } } else { // 调用第三方模板引擎解析和输出 $class = 'Template' . ucwords($engine); if (is_file(CORE_PATH . 'Driver/Template/' . $class . '.class.php')) { // 内置驱动 $path = CORE_PATH; } else { // 扩展驱动 $path = EXTEND_PATH; } if (require_cache($path . 'Driver/Template/' . $class . '.class.php')) { $tpl = new $class(); $tpl->fetch($_data['file'], $_data['var']); } else { // 类没有定义 throw_exception(L('_NOT_SUPPERT_') . ': ' . $class); } } //[sae] 添加trace信息。 trace(array('[SAE]核心缓存' => $_SERVER['HTTP_APPVERSION'] . '/' . RUNTIME_FILE, '[SAE]模板缓存' => $_SERVER['HTTP_APPVERSION'] . '/' . md5($_data['file']) . C('TMPL_CACHFILE_SUFFIX'))); }
/** * 加载模板 * @access public * @param string $tmplTemplateFile 模板文件 * @param array $templateVar 模板变量 * @param string $prefix 模板标识前缀 * @return void */ public function fetch($templateFile, $templateVar, $prefix = '') { $this->tVar = $templateVar; $templateCacheFile = $this->loadTemplate($templateFile, $prefix); //[sae]载入模版缓存文件 SaeMC::include_file($templateCacheFile, $templateVar); }
public function run(&$_data) { $engine = strtolower(C('TMPL_ENGINE_TYPE')); $_content = empty($_data['content']) ? $_data['file'] : $_data['content']; $_data['prefix'] = !empty($_data['prefix']) ? $_data['prefix'] : C('TMPL_CACHE_PREFIX'); if ('think' == $engine) { //[sae] 采用Think模板引擎 if (!empty($_data['content']) && $this->checkContentCache($_data['content'], $_data['prefix']) || $this->checkCache($_data['file'], $_data['prefix'])) { // 缓存有效 //[sae],为方便saeCacheBuilder编译, 模板编译缓存不分组 SaeMC::include_file(C('CACHE_PATH') . $_data['prefix'] . md5($_content) . C('TMPL_CACHFILE_SUFFIX'), $_data['var']); } else { $tpl = Think::instance('ThinkTemplate'); // 编译并加载模板文件 $tpl->fetch($_content, $_data['var'], $_data['prefix']); } } else { // 调用第三方模板引擎解析和输出 $class = 'Template' . ucwords($engine); if (class_exists($class)) { $tpl = new $class(); $tpl->fetch($_content, $_data['var']); } else { // 类没有定义 throw_exception(L('_NOT_SUPPERT_') . ': ' . $class); } } //[sae] 添加trace信息。 if (!SAE_RUNTIME) { trace($_SERVER['HTTP_APPVERSION'] . '/' . RUNTIME_FILE, '核心缓存Mecache KEY', 'SAE'); trace($_SERVER['HTTP_APPVERSION'] . '/' . C('CACHE_PATH') . $_data['prefix'] . md5($_content) . C('TMPL_CACHFILE_SUFFIX'), '模版缓存Mecache KEY', 'SAE'); } }
public function run(&$_data) { $engine = strtolower(C('TMPL_ENGINE_TYPE')); $_content = empty($_data['content']) ? $_data['file'] : $_data['content']; if ('think' == $engine) { //[sae] 采用Think模板引擎 if (empty($_data['content']) && $this->checkCache($_data['file'])) { // 缓存有效 //[sae],为方便saeCacheBuilder编译, 模板编译缓存不分组 SaeMC::include_file(CACHE_PATH . md5($_data['file']) . C('TMPL_CACHFILE_SUFFIX'), $_data['var']); } else { $tpl = Think::instance('ThinkTemplate'); // 编译并加载模板文件 $tpl->fetch($_content, $_data['var']); } } else { // 调用第三方模板引擎解析和输出 $class = 'Template' . ucwords($engine); if (is_file(CORE_PATH . 'Driver/Template/' . $class . '.class.php')) { // 内置驱动 $path = CORE_PATH; } else { // 扩展驱动 $path = EXTEND_PATH; } if (require_cache($path . 'Driver/Template/' . $class . '.class.php')) { $tpl = new $class(); $tpl->fetch($_content, $_data['var']); } else { // 类没有定义 throw_exception(L('_NOT_SUPPERT_') . ': ' . $class); } } //[sae] 添加trace信息。 if (APP_DEBUG) { trace($_SERVER['HTTP_APPVERSION'] . '/' . RUNTIME_FILE, '核心缓存', 'SAE'); } if (APP_DEBUG) { trace($_SERVER['HTTP_APPVERSION'] . '/' . CACHE_PATH . md5($_data['file']) . C('TMPL_CACHFILE_SUFFIX'), '模版缓存', 'SAE'); } }
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'; } }