版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanghuiqi205/article/details/84679591
1.Smarty是一种模板引擎技术
模板引擎是什么?
在用户页面展示的一个页面,由两方面,数据及承载数据的标签。标签就是html,而数据是由php处理。这样就造成一个文档牵涉了两种工作人员(前端与后台)。模板引擎技术就是将,php代码与html代码分离。
Smarty是zend公司使用php语言所编写一套php语言模板引擎。
模板引擎涉及到4个文件:
- php 产生数据
- 模板 html
- 编译文件 对html文档的中smarty标签进行替换后的文件
- 缓存文件 对编译文件进行执行的结果再保存为一个纯的html文档。
那到底smarty模板引擎是怎么把模板里面的非php代码的标签,转变成被最终可以解析执行的php代码的呢?
主要思路是:替换。
分成了两步:
1、用过assign函数把要解析的标签变量赋值
2、通过display函数把标签替换成对象的php变量
我们在php开发中,视图层view是不允许有php代码来操作数据库之类的来获取数据的,我们一般都会在控制器层controller,就已经把视图层要展示的数据准备好,方便视图层直接用来展示。
扫描二维码关注公众号,回复:
4328999 查看本文章
![](/qrcode.jpg)
smarty模板技术,可以让数据和视图进行分离,让视图中不能直接出现php代码。这样的话,让前段页面的开发和后台数据的开发,可以双管齐下,同时进行了。
smarty模板的使用比较简单,主要有两个非常核心的函数。一个是assig(),把模板中要使用的数据进行欲赋值,一个是display(),用来解析和展示最后的视图模板。
2.smarty部署:
下载,然后引入文件即可。
每个引擎都是有各自的模板语法。对变量,格式化,执行语句结构顺序的控制。
3.smarty优点:
- 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。
- 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
- 缓存技术:smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定smarty的cache属性为true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
- 插件技术:smarty可以自定义插件。插件实际就是一些自定义的函数。
- 强大的表现逻辑:模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。
4.不适合使用smarty的地方:
- 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。
- 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用smarty会丧失php开发迅速的优点。(PS:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题)
5.介绍几篇不错的文章: