- 4
- 0
- 约7.08千字
- 约 25页
- 2025-06-09 发布于广东
- 举报
模板引擎——Smarty上
目录
TOC\o1-3\h\z\u模板引擎——Smarty上 1
一、模板引擎 2
1、什么是模板引擎 2
2、模板引擎原理 3
3、封装一个小型的模板引擎 4
二、Smarty模板引擎 5
1、什么是Smarty模板引擎 5
2、下载安装Smarty 5
3、为什么要选择Smarty 6
4、使用Smarty 6
5、编译原理 8
6、smarty执行流程 10
7、smarty几个常用属性与方法 10
三、设计篇 12
一、模板引擎
1、什么是模板引擎
模板引擎,是指利用某种模板语言将页面制成模板,再依据业务逻辑将该模板语言翻译成业务数据,从而生成最终展示页面。其目的就是要把页面与业务数据实现彻底分离。
我们在很多地方都可以看到模板引擎的身影,比如各种CMS、论坛、代码生成器,甚至是Mootools、JQuery等JavaScript库都用到了模板引擎。
table
?php
while($row=mysql_fetch_assoc($res){
?
tr
td产品名称/td
td?phpecho$row[‘goodNames’]?/td
/tr
?
}
?
table
公司中,是如何开发项目的?
设计组(设计效果图PS、FW)+Web前端(HTML+CSS+JS)
程序组(嵌入PHP)
小公司:
设计+程序(集合)
开发流程:
设计——程序——测试——上线(理论化)
设计——程序——测试——设计——程序——测试——程序——设计
如何解决以上问题:
答:通过模板引擎,把PHP逻辑代码与外观样式(HTML+CSS+JS)分离
table
{foreach$res$row}
tr
td产品名称/td
td{$goodName}/td
/tr
{/foreach}
table
DEDECMS/ECSHOP/PHPCMS
标签手册
{$title} 文章标题
{$content}文章内容
2、模板引擎原理
无论任何模板引擎,其实质原理都是实现对字符串的替换操作
php代码:
html代码:
效果:
3、封装一个小型的模板引擎
Template.class.php
demo01.php
demo01.html
二、Smarty模板引擎
1、什么是Smarty模板引擎
答:Smarty是通过PHP开发的模板引擎,提供了PHP逻辑代码与外观相分离的目的。
面试题:你了解与使用过那些模板引擎?
答:我了解过PHPLIB,比较擅长使用Smarty,目前正在学习Volt与Yaf
2、下载安装Smarty
1)下载地址:/
2)下载解压如下图所示
进入libs核心文件夹
3、为什么要选择Smarty
速度:相对于其他模板引擎而言,Smarty拥有更快的响应速度
编译型:系统在第一次访问模板文件时,会自动将其转化为编译文件(PHP文件),当下一次请求模板文件时,如果文件没有改变,系统会自动转向到编译文件
缓存技术:当系统访问模板文件时,如开启缓存开关,系统会自动生成缓存文件(静态页面),当下次访问系统自动转向缓存文件
原生
编译技术缓存技术静态化技术
插件技术:扩展性灵活
语句自由if/elseif/else/endif:ifelseifelseendif
不适合Smarty:
1)实时更新项目
2)小项目
4、使用Smarty
Smarty使用六步走
1)复制libs文件夹到项目目录中,并改名为smarty
2)创建php页面与html页面(在模板文件夹中templates)
3)在php页面中引入smarty3入口文件
4)创建smarty对象
5)通过assign方法分配变量到模板文件
6)通过display方法显示输出模板内容
示例代码:
demo01.php代码
demo01.html代码
效果:
当以上代码运行完毕后,系统会自动在项目目录生成templates_c编译目录,同时会生成编译文件,如下图所示:
模板标签会自动被Smarty替换为动态的PHP代码,当下次访问模板文件时,系统自动转向到编译文件。
为什么模板文件夹是templates/编译目录templates_c
5、编译原理
当用户的请求首先访问动态的php页面,系统自动访问smarty模板引擎,smarty引擎负责载入静态的html模板并生成编译文件(php),当用户下一次发送用户请求,系统首先校检模板文件是否改变,如改变则重新生成编译文件,否则,直接调用编译文件。
如何判断模板文件是否有改变:
在我们的window或linux操作系统,文件都有三个时间
创建时间ctime
修
您可能关注的文档
- jQuery安装+选择器+对象.docx
- ajax介绍+Ajax对象常用属性与方法.docx
- ajax的封装框架+无限极分类+百度下拉框+无刷新分页.docx
- smarty使用文档操作(下).docx
- PHP的正则表达式.docx
- Object类静态方法+函数闭包+私有属性+类的继承.docx
- js中的常用系统类+自定义类+属性遍历的删除+原型链.docx
- js的事件驱动+事件监听+BOM模型定时器.docx
- 2026年及未来5年智能低功耗就地显示仪表项目市场数据调查、监测研究报告.docx
- 2026年及未来5年非标专用输送设备项目市场数据调查、监测研究报告.docx
- 2022年《投资建设项目组织》综合模考卷1.doc
- 2026年及未来5年安全挡板锁项目市场数据调查、监测研究报告.docx
- 2022年《投资建设项目组织》综合模考卷2.doc
- 2026年及未来5年仪器仪表校验气体项目市场数据调查、监测研究报告.docx
- 2026年及未来5年吊式洗头喷雾器项目市场数据调查、监测研究报告.docx
- 2026年及未来5年单段火燃气燃烧机项目市场数据调查、监测研究报告.docx
- 2026年及未来5年高频焊翅片管项目市场数据调查、监测研究报告.docx
- 2026年及未来5年牛皮纸复合包装袋项目市场数据调查、监测研究报告.docx
- 2026年及未来5年冷冻油项目市场数据调查、监测研究报告.docx
- 一二年级复习 课件 2025-2026学年苏教版数学二年级下册.pptx
原创力文档

文档评论(0)