一、关于视图
视图是 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的几个简单的语法,更多的语法规则我们将在后面的章节中介绍。
{$string}
# 在视图显示一个一维数组的值{$array.title}
# 遍历一个二维数组里面的值 {foreach from=$list item=array key=key}{$array.name}
{/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
前台配置文件路径@shopwind\frontend\(home|api|mob)\config\main.php
后台配置文件路径@shopwind\backend\config\main.php
其他相关问题,请参考:Yii2使用模板引擎了解更多内容,也可以访问我们的
开发者社区反馈,我们会有官方技术人员在线解答。