Yii2框架配置smarty模板引擎

主页 > 新闻资讯 > Yii2框架配置smarty模板引擎
为了剥离前后端,项目的前端使用smarty模板引擎,后端开发框架是yii2。官方基于smarty专门开发了yii2-smarty拓展用于yii2的项目中。 yii2-smarty的官方地址是: https://github.com/yiisoft/yii2-smart
为了剥离前后端,项目的前端使用smarty模板引擎,后端使用yii2开发框架。官方基于smarty专门开发了yii2-smarty拓展用于yii2的项目中。
yii2-smarty的官方地址是: https://github.com/yiisoft/yii2-smarty
 
坑爹的是,项目里的文档基本上都在说怎么安装,怎么使用smarty语法。想简单的改变smarty默认的单括号为双括号也没找到怎么改的方法。
 
一开始以为用的smarty是yii2自己实现的,简化版不支持这些配置。这几天来自喵的刚性需求,想着官方没有实现,那就自己实现,自给自足。
 
为了达到这个目的,首先查找原生smarty配置,发现可以通过通过 left_delimiter和 right_delimiter 两个选项设置。接下来就是到yii2-smarty的项目,看看包装成yiiwebView可以调用的renderer需要怎么做。看源代码的时候瞄到了如下代码:

$this->smarty->$key = $value;
心想这不是支持的吗?!马上跑到配置文件里设置:

'view' => [
            'class' => 'applibraryView',
            'renderers' => [
                'tpl' => [
                    'class' => 'yiismartyViewRenderer',
                    'cachePath' => '@runtime/Smarty/cache',
                    'left_delimiter' => '{{',
                    'right_delimiter' => '}}',
                ],
            ],
        ],

添加了之后,执行脚本提示 没有 left_delimiter 这个属性! shenmegui!
 
再仔细细看yii2-smarty的源码,发现整体是:

foreach ($this->options as $key => $value) {
    $this->smarty->$key = $value;
}
我去,原来是要放在options里面啊!既然弄明白了,那么配置改成:


'view' => [
            'class' => 'applibraryView',
            'renderers' => [
                'tpl' => [
                    'class' => 'yiismartyViewRenderer',
                    'cachePath' => '@runtime/Smarty/cache',
                    'options' => [
                        'left_delimiter' => '{{',
                        'right_delimiter' => '}}',
                    ],
                ],
            ],
        ],

再次测试,发现OK了!

嗯,接下来smarty的配置都知道该怎么做了~
相关文章