Change template engine of thinkphp(3.2.3) to twig

Create new Twig.class.php in Thinkphp/Library/Think/Template/Driver/

<?php
namespace Think\Template\Driver;
class Twig {

    /**
     * 渲染模板輸出
     * @access public
     * @param string $templateFile 模板文件名
     * @param array $var 模板變量
     * @return void
     */
    public function fetch($templateFile,$var) 
    {
        $loader = new \Twig_Loader_Filesystem(THEME_PATH);
        $twig = new \Twig_Environment($loader, [
            'cache' => CACHE_PATH,
            'auto_reload' => true,
            'debug' => true,// 開啓debug
        ]);
        
        $twig->addExtension(new \Twig_Extension_Debug());// 開啓debug
        $twig->addFunction(new \Twig_SimpleFunction('session', 'session'));// 映射系統函數session
        $twig->addFunction(new \Twig_SimpleFunction('I', 'I'));// 映射系統函數I

        $templateFile = substr($templateFile,strlen(THEME_PATH));
        echo $twig->render($templateFile, $var);
    }
}

Change config

<?php
// set TMPL_TEMPLATE_SUFFI is optional, you can just use .html, but in PHPStorm .twig files get Highlight display

// set in config.php
return [
    'TMPL_ENGINE_TYPE' => 'Twig',
    'TMPL_TEMPLATE_SUFFIX' => '.twig',
];

or

// set before call ($this->display()) on the fly
C('TMPL_ENGINE_TYPE', 'Twig');
C('TMPL_TEMPLATE_SUFFIX', '.twig');
相關文章
相關標籤/搜索