public function __construct(ConfigObject $config)
{
$this->smarty = new \Smarty();
// compile dir
$compileDir = $config->get('CompileDir', false);
if (!$compileDir) {
throw new SmartyException('Configuration error, "CompileDir" is missing.');
}
$this->setCompileDir($compileDir);
// cache dir
$cacheDir = $config->get('CacheDir', false);
if (!$cacheDir) {
throw new SmartyException('Configuration error, "CacheDir" is missing.');
}
$this->setCacheDir($cacheDir);
// template dir
$templateDir = $config->get('TemplateDir', false);
if ($templateDir) {
$this->setTemplateDir($templateDir);
}
// force compile
$this->setForceCompile($config->get('ForceCompile', false));
// merge compiled includes
if (!$config->get('MergeCompiledIncludes', true)) {
$this->setMergeCompiledIncludes(false);
}
// mute expected errors
if ($config->get('MuteExpectedErrors', false)) {
$this->smarty->muteExpectedErrors();
} else {
$this->smarty->unmuteExpectedErrors();
}
// register extensions
$this->registerExtensions();
}