第17章 Smarty模板技术-【千锋教育】PHP从入门到精通
|
55页
|
127人阅读
|
0人下载
教辅
内容正文:
第17章 Smarty模板技术
Smarty模板简介
Smarty的安装和配置
Smarty模板基本语法
Smarty内置函数
Smarty模板继承
Smarty缓存控制
Smarty模板简介
Smarty的安装和配置
Smarty模板基本语法
17.2
17.3
17.1
☞点击查看本小节知识架构
☞点击查看本小节知识架构
Smarty内置函数
17.4
☞点击查看本小节知识架构
Smarty模板继承
17.5
☞点击查看本小节知识架构
Smarty缓存控制
17.6
☞点击查看本小节知识架构
☞点击查看本小节知识架构
学习目标
了解
了解
掌握
掌握
了解Smarty模板特性
1
掌握Smarty模板典型应用实例
4
2
了解Smarty模板的安装和配置
3
掌握Smarty模板基本的语法
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
17.1 Smarty模板简介
17.1.1
Smarty的概念
返回目录
17.1.2
Smarty的工作原理
17.1.3
Smarty的特征
17.1 Smarty模板简介
17.1.1 Smarty的概念
Smarty是一个PHP的模板引擎,其主要功能是让程序逻辑代码与页面显示(HTML/CSS)代码相分离。简单地讲,它将程序分成两个部分,进而使PHP程序员同美工的工作相分离,当使用Smarty的PHP程序员改变程序的业务逻辑时不会影响到美工的页面设计,与此类似,当美工重新修改页面时也不会影响到程序的业务逻辑,这极大地提升了多人合作的工程项目的开发效率。
17.1 Smarty模板简介
17.1.2 Smarty的工作原理
在收到客户端的HTTP请求之后,PHP脚本创建模板引擎,模板引擎读取模板内容,并最终将PHP程序与模板合并,生成合并脚本,具体如图所示。
17.1 Smarty模板简介
17.1.2 Smarty的工作原理
在处理请求时,服务器会先判断当前请求的URL是否第一次被客户端请求,如果是,将该URL所需的模板文件编译成PHP脚本,然后重定向到这个PHP脚本;如果不是,这说明该URL的模板已经被编译,检查它不需要重新编译后直接完成重定向。开发者也可以自定义一个固定时限,让Smarty模板引擎按照固定时限重编译模板文件。此外,当模板文件被修改时,Smarty也会重新编译。由此可见,基于Smarty的工作方式,如果不修改模板文件,编译好的缓存脚本就可以随时调用,这将大大提高网站的响应速度。
17.1 Smarty模板简介
17.1.3 Smarty的特性
Smarty拥有丰富的函数库,包括统计字数、截取字符串、文字的特效以及正则表达式等,这些功能可以直接调用相应的函数实现,总体来说,Smarty模板的优势如下:
速度:采用Smarty编写的程序可以获得响应速度的大幅度提升。
编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,该文件采用了PHP与HTML混合的方式,如果源程序没有变动,在下一次访问时Web请求将直接重定向到这个文件,而不再对模板进行重新编译。
17.1 Smarty模板简介
17.1.3 Smarty的特性
缓存技术:Smarty支持缓存,当设定Smarty的cache属性为true时,Smarty可以将用户最终看到的页面预先缓存成一个静态的HTML文件,在Smarty设定的cachetime期内,用户的Web请求重定向到这个静态的HTML文件,这相当于直接调用一个静态的HTML文件。
插件技术:Smarty支持自定义插件,开发人员通过这些插件扩展程序的功能。
逻辑判断:Smarty模板文件支持使用判断语句,通过这些判断语句可以非常方便的重新编排模板格式。
17.2 Smarty的安装和配置
17.2.1
Smarty的下载和安装
返回目录
17.2.2
Smarty目录分析
17.2.3
Smarty配置
17.2.4
第一个Smarty的简单示例
17.2 Smarty的安装和配置
在使用Smarty模板之前,首先要下载和安装Smarty的类包,具体步骤如下:
使用浏览器访问Smarty官方网站http://www.smarty.net/download.php,下载最新的稳定版本Smarty 3.1.32。
解压下载的压缩包,可以获得名称为Smarty-3.1.32的目录,打开该目录,找到libs文件夹,libs文件夹中存有Smarty类库,在使用时直接将libs文件夹复制到程序主文件夹下。
在执行的PHP脚本中,通过require()语句将libs目录中的Smarty.class.php类文件加载进来,Smarty类库就可以使用了,这里需要注意的是,Smarty.class.php中的