1)、模板引擎概念
❖ 模板引擎的功能是实现逻辑与显示相分离,使程序设计者可以专注于程序功能的开发,使网页设计师专注于页面的设计。也可以让网站的维护和更新变得更容易,创造一个更加
良好的开发环境,模板引擎不属于特定技术领域,它是跨领域跨平台的概念。
❖ 模板引擎不只是可以让你实现代码分离(业务逻辑代码和用户界面代码),也可以实现数据分离(动态数据与静态数据),还可以实现代码单元共享(代码重用),甚至是多语言、动态页面与静态页面自动均衡(SDE)等等与用户界面可能没有关系的功能。
2)、模板引擎分类
❖ 模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字符串)替换一下便生成了最终需要的业务数据(比如网页)。
❖ 置换型模板引擎实现简单,但其效率底下,无法满足高负载的应用需求(比如有海量访问的网站),因此还出现了“解释型”模板引擎和“编译型”模板引擎等
❖ Smarty模版引擎属于“编译型”模板引擎。
3)、模板引擎实现过程(自定义模板引擎)
1.前端需要数据的地方我们用一个占位符{$data}
2.后端把需要的数据查找到$data
3.模板引擎合二为一。有两个功能一个是从php中拿数据的功能,另外一个需要替换的功能
所以模板引擎有两个核心的方法
1 assign('赋值的变量名','值'):把你想要展示的数据分配给前端页面
2 display('模板的地址'),使用正则将对应的占位符换成对应的数据,并显示替换后内容
4)Smarty模板引擎优点
速度:采用smarty编写的程序可以获得最大速度的提高
编译型:采用Smarty编写的程序在运行时要编译(组合)成一个非模板技术的PHP文件,使后续的调用速度更快。
缓存技术:Smarty提供了一种可选择使用的缓存技术,它可以将用户最终看到HTML文件缓存成一个静态的HTML页。在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
插件技术:Smarty采用面向对象实现,可以非常方便的定义一些插件。插件实际就是一些自定义的函数。
强大的表现逻辑:PHP负责后台,Smarty负责前端。