opencart 引入 TWIG 模板引擎

 1.首先将 twig 包放入 systemlibrary 目录。


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 >{{ heading_title }}</h1>

{{ content_bottom|raw }}</div>

{{ footer|raw }}

 

 

 



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

原文地址:https://www.cnblogs.com/caryfang/p/4535695.html