load source resource at template object creation

This commit is contained in:
Uwe Tews
2015-08-06 19:12:24 +02:00
parent 35c7e9767d
commit 5ca4f0484a

View File

@@ -27,6 +27,13 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
*/
public $smarty = null;
/**
* Source instance
*
* @var Smarty_Template_Source|Smarty_Template_Config
*/
public $source = null;
/**
* Template resource
*
@@ -131,6 +138,7 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
$this->parent = $_parent;
// Template resource
$this->template_resource = $template_resource;
$this->source = Smarty_Template_Source::load($this);
// copy block data of template inheritance
if ($this->parent instanceof Smarty_Internal_Template) {
$this->block_data = $this->parent->block_data;
@@ -187,9 +195,6 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
Smarty_Internal_Debug::start_template($this, $display);
}
// checks if template exists
if (!isset($this->source)) {
$this->loadSource();
}
if (!$this->source->exists) {
if ($parentIsTpl) {
$parent_resource = " in '{$this->parent->template_resource}'";
@@ -800,19 +805,6 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
return $this->cached->handler->clear($this->smarty, $this->template_resource, $this->cache_id, $this->compile_id, $exp_time);
}
/**
* Load source resource
*
* @throws SmartyException
*/
public function loadSource()
{
$this->source = Smarty_Template_Source::load($this);
if ($this->smarty->template_resource_caching && !$this->source->recompiled && isset($this->templateId)) {
$this->smarty->template_objects[$this->templateId] = $this;
}
}
/**
* Load compiled object
*
@@ -884,7 +876,6 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
public function __set($property_name, $value)
{
switch ($property_name) {
case 'source':
case 'compiled':
case 'cached':
case 'compiler':
@@ -911,10 +902,6 @@ class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
public function __get($property_name)
{
switch ($property_name) {
case 'source':
$this->loadSource();
return $this->source;
case 'compiled':
$this->loadCompiled();
return $this->compiled;