thinkphp5使用twig模板引擎

浏览:1286 发布日期:2016/10/25 分类:技术分享 关键字: twig 模板 模板引擎
作者:没有哆啦A梦的大雄
QQ :206280548
转载请在文尾保留作者姓名
-------------------------------------------------------------------------
thinkphp5较之前的版本确实让人耳目一新,各种满意,唯独对这个thinkphp自带模板引擎不太满意,于是打算更换一下,在这里分享下过程。

先说明,由于本人习惯所有视图文件集中在一个目录下面,所以没有通过thinkphp的视图体系来引入twig。
也就是说,我的视图文件都是集中在根目录 的views目录下,而不是每个模块下单独一个view文件夹。

1 首先,composer引入twig。在composer.json的require中新增一行
"twig/twig": "~1.0",然后composer install安装即可。
关于composer的使用就不详讲了,不会用的小伙伴请另外学习composer使用。

composer自动引入了twig并且载入了它的命名空间,可以在vendor文件夹下看到twig文件夹,说明这一步成功了。



2、写一个视图输出函数twig
ps:可以叫view覆盖thinkphp的,也可以写在控制器里,小伙伴按需改动即可。

配置文件
function twig($template, $vars=[], $httpCode=false)
{   
    //定义模板目录
    $loader = new \Twig_Loader_Filesystem( ROOT_PATH.'views' );
    //初始化
    $twig = new \Twig_Environment($loader, array(
        'cache' => RUNTIME_PATH.'/twig',
        'debug' => config('app_debug')
    ));

    //函数扩展
    $url_function = new Twig_SimpleFunction('url', function($url = '', $vars = '', $suffix = true, $domain = false){
        return url($url, $vars, $suffix, $domain);
    });
    $twig->addFunction($url_function);

    //输出模板
    return $twig->render($template.config('twig.view_suffix'), $vars);
}
注意点:
twig模板内是不能使用自定义函数的,因此使用$twig->addFunction($function);注册自定义函数,除了url函数,还可以扩展其他的函数,过滤器,具体可以一步twig官网。


3、写一个模板文件


4、控制器输出


5、查看视图是否正确输出



成功
最佳答案
评论( 相关
后面还有条评论,点击查看>>