/** * get Smarty property in template context * * @param string $property_name property name * * @return \Smarty_Config_Source|\Smarty_Template_Compiled * @throws SmartyException if $property_name is not valid */ public function __get($property_name) { switch ($property_name) { case 'source': if (empty($this->config_resource)) { throw new SmartyException("Unable to parse resource name \"{$this->config_resource}\""); } $this->source = Smarty_Resource::config($this); return $this->source; case 'compiled': $this->compiled = $this->source->getCompiled($this); return $this->compiled; } throw new SmartyException("config attribute '{$property_name}' does not exist."); }