视图介绍
本章节主要是介绍,视图组件的概念以及ShopWind系统选择集成Smarty模板引擎的缘由,并介绍了如何增加第三方模板引擎的方法。
一、关于视图
视图是 MVC 模式中的一部分。 它是展示数据到终端用户的代码,在网页应用中, 根据视图模板来创建视图,视图模板为HTML或PHP脚本文件, 主要包含HTML代码和展示类PHP代码。
由于项目需要,ShopWind并未完全使用Yii2的视图组件,原因有以下几个方面:

1、Yii2直接使用PHP脚本文件来作为视图文件,对前端开发者来讲并不是一个很好的体验。

2、目前前端开发一般使用Html或Vue,Yii2视图组件将PHP代码插入到视图中,代码混绕不易理解。

3、如果原来项目是Html/Vue布局,增加了将原有项目转移到Yii2的成本。

当然,这并不意味着,您就无法在ShopWind系统中使用Yii2的视图组件,实际上完全没有影响,您如果熟悉Yii2的视图,也可以在ShopWind中创建基于视图组件的布局。有关Yii2的视图组件,请参考:Yii2视图组件
二、ShopWind视图
ShopWind系统使用更加简单、纯前端的HTML(或Vue)作为视图文件,不需要前端开发者编写任何PHP语句,只需要掌握Smarty模板引擎的几个主要的语法,就能轻松地实现数据的绑定和显示。 对于做Web项目的前端开发者来讲,Smarty模板引擎几乎是无人不知的存在,其简单、高效、快速的特性被广大开发者使用在项目中,开源产品ECSHOP、ECMall、shopex使用的都是Smarty,以下是Smarty的几个简单的语法,更多的语法规则我们将在后面的章节中介绍。
# 在视图显示一个字符 <h3>{$string}</h3> # 在视图显示一个一维数组的值 <h3>{$array.title}</h3> # 遍历一个二维数组里面的值 {foreach from=$list item=array key=key} <h3>{$array.name}</h3> {/foreach}
当然即便您再不喜欢Smarty,系统也允许您使用其他的模板引擎,比如:Twig。如果使用其他的模板引擎,您需要先通过Composer安装该拓展,安装拓展后,您只需要修改一下配置文件@shopwind/common/config/main.php即可。
'components' => [
    'view' => [
        'class' => 'yii\web\View',
        'renderers' => [
            'html' => [ // view file prefix
                'class' => 'yii\smarty\ViewRenderer',
                'cachePath' => '@runtime/Smarty/cache',
            ],
            'twig' => [
                'class' => 'yii\twig\ViewRenderer',
                'cachePath' => '@runtime/Twig/cache'
            ]
            // ...
        ]
    ]
]
如果您还需要有更多个性化的需求,比如前台(frontend)使用Smarty模板引擎,后台(backend)不使用模板引擎,H5/WAP使用twig模板引擎,那也是可以的,您只需要把配置文件写到 应用(站点)的配置文件里,而不是写到公共配置文件@shopwind/common/config/main.php

PC前台配置文件路径@shopwind/frontend/config/main.php

后台配置文件路径@shopwind/backend/config/main.php

H5/WAP端配置文件路径@shopwind/mobile/config/main.php

其他相关问题,请参考:Yii2使用模板引擎了解更多内容,也可以访问我们的 开发者社区反馈,我们会有官方技术人员在线解答。