opencart 引入 TWIG 模板引擎

1.首先将 twig 包放入 system\library 目录。

2.在 system/startup.php 文件最后添加引入语句。
require_once(DIR_SYSTEM . 'library/Twig-1.12.3/lib/Twig/Autoloader.php');

3.在 index.php 文件中,加入twig引擎初始化语句。
//twig
Twig_Autoloader::register();
$twigLoader = new Twig_Loader_Filesystem(DIR_TEMPLATE);
$twig = new Twig_Environment($twigLoader, array(
'cache' => DIR_CACHE,
));

$registry->set('twig', $twig);


4.修改opencart框架控制层引擎类,添加 twigRender 渲染方法。(关键一步,此方法会保留原始的模板渲染方法,保证兼容性。)
protected function twigRender() {
foreach ($this->children as $child) {
$this->data[basename($child)] = $this->getChild($child);
}


if (file_exists(DIR_TEMPLATE . $this->template)) {
$this->output = $this->twig->render($this->template, $this->data);
return $this->output;

} else {
trigger_error('Error: Could not load template ' . DIR_TEMPLATE . $this->template . '!');
exit();
}
}


5.在控制层,调用新的渲染方法。
$this->response->setOutput($this->twigRender());

6.测试首页模板文件。
{{ header|raw }}{{ column_left|raw }}{{ column_right|raw }}
<div id="content">{{ content_top|raw }}
<h1 style="display: none;">{{ heading_title }}</h1>
{{ content_bottom|raw }}</div>
{{ footer|raw }}


7.加入twig模板引擎之后的OP,相信会更加的强大。

你可能感兴趣的:(function,System,library,register,Registry)