在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职、无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利。 我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示。 smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码。这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了。
smarty模板的使用比较简单,主要有两个非常核心的函数。一个是assig(),把模板中要使用的数据进行欲赋值,一个是display(),用来解析和展示最后的视图模板。 使用的简单代码如下: include_once "Smarty.class.php";//引入smarty类 $smarty = new Smarty;//创建smarty对象 $smarty->assign("name","zhangmiao");//赋值,以备模板中使用 $smarty->assign("age","18"); $smarty->display('index.tpl');//引入模板,展示视图页面
我们看下模板源代码是这样的: <h1>测试模板1</h1> 我的名字是:{$name}<br/> 我的年纪是:{$age}<br/> 浏览器页面是这样的: 疑问:我们模板中没有php代码,我们只用了{$name}和{$age}就能把对应的变量给展示了出来,是什么鬼呢? 然后,我们一看smarty编译后的文件是这样的: <h1>测试模板1</h1> 我的名字是:<?php echo $this->var["name"]; ?><br/> 我的年纪是:<?php echo $this->var["age"]; ?><br/> 原来如此,最终还是变成了含有php代码的模板,但是这个模板中把标签转成php代码的工作,我们交给了smarty模板引擎来完成的。
那到底smarty模板引擎是怎么把模板里面的非php代码的标签,转变成被最终可以解析执行的php代码的呢? 主要思路是:替换。 分成了两步: 1、用过assign函数把要解析的标签变量赋值 2、通过display函数把标签替换成对象的php变量 我们根据这个思路,自己也写了个简易版的smarty模板引擎,算是多smarty模板引擎设计原理的一种理解。但是只能解析单个变量的标签,其他标签均没有处理。代码如下: class MySmarty{
我们调用自己的assign和display放入引入,也能正常解析使用啦 |
2022-08-17
2022-07-18
2022-11-06
2022-08-17
2022-07-30
请发表评论