/** * get a Compiled Object of this source * @param Smarty_Internal_Template $_template template object * @return Smarty_Template_Compiled compiled object */ static function load($_template) { if (!isset($_template->source)) { $_template->loadSource(); } // check runtime cache if (!$_template->source->recompiled && $_template->smarty->resource_caching) { $_cache_key = $_template->source->unique_resource . '#'; if ($_template->caching) { $_cache_key .= 'caching#'; } $_cache_key .= $_template->compile_id; if (isset($_template->source->compileds[$_cache_key])) { return $_template->source->compileds[$_cache_key]; } } $compiled = new Smarty_Template_Compiled(); if (method_exists($_template->source->handler, 'populateCompiledFilepath')) { $_template->source->handler->populateCompiledFilepath($compiled, $_template); } else { $compiled->populateCompiledFilepath($_template); } // runtime cache if (!$_template->source->recompiled && $_template->smarty->resource_caching) { $_template->source->compileds[$_cache_key] = $compiled; } return $compiled; }
/** * create Cached Object container * * @param Smarty_Internal_Template $_template template object */ public function __construct(Smarty_Internal_Template $_template) { $this->compile_id = $_template->compile_id; $this->cache_id = $_template->cache_id; if (!isset($_template->source)) { $_template->loadSource(); } $this->source = $_template->source; if (!class_exists('Smarty_CacheResource', false)) { require SMARTY_SYSPLUGINS_DIR . 'smarty_cacheresource.php'; } $this->handler = Smarty_CacheResource::load($_template->smarty); }