Smarty模板技术在商城中的应用

上传人:宝路 文档编号:47904366 上传时间:2018-07-06 格式:PPT 页数:21 大小:403.34KB
返回 下载 相关 举报
Smarty模板技术在商城中的应用_第1页
第1页 / 共21页
Smarty模板技术在商城中的应用_第2页
第2页 / 共21页
Smarty模板技术在商城中的应用_第3页
第3页 / 共21页
Smarty模板技术在商城中的应用_第4页
第4页 / 共21页
Smarty模板技术在商城中的应用_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Smarty模板技术在商城中的应用》由会员分享,可在线阅读,更多相关《Smarty模板技术在商城中的应用(21页珍藏版)》请在金锄头文库上搜索。

1、PHP+MySQL动态网页技术教程第11章 Smarty模板技术在商城中的应用11.1 项目导引:图书显示模块v 在前面章节,用户登录注册、商品管理和购物车管理等模 块的开发,采用PHP代码和HTML代码混合编写模式,但是 在许多公司中,界面设计者和程序设计者往往是分开的, 也就是说PHP代码和HTML代码是由不同角色编写的,这就 要求程序中PHP代码和HTML代码采用分离的编写模式,那 么,如何实现分离编写呢? v 于是,Smarty模板解决方案就产生了。本章的项目是基于 Smarty技术完成图书显示模块的开发,那么什么是Smarty 模板?Smarty模板该如何使用呢?11.2 项目分析v

2、 Smarty模板是一个使用PHP编写的PHP模板引擎,它将一个 应用程序分成了用户界面和程序逻辑两部分,从而使程序 员和美工各自扮演不同的角色,负责不同的任务,美工负 责页面的显示,程序员负责程序逻辑的处理,这体现了分 层的程序开发思想。 v 基于Smarty的图书显示程序,需要将程序分成两个页面, Smarty程序页面和Smarty模板页面。过去我们一个页面就 可以实现图书显示,而现在要强制性的把程序分成两部分 ,Smarty程序页面负责从数据库中提取和处理图书信息, Smarty模板页面则组合使用HTML标记和模板标记去控制图 书信息的显示。这样做的优点是,程序员改变程序的逻辑 不会影响

3、到页面显示,同样,美工改变页面的显示风格也 不会影响到程序的逻辑。11.3 技术准备v11.3.1 Smarty程序设计n1Smarty程序设计中的变量n模板目录变量($template_dir)n编译目录变量($compile_dir)n配置目录变量($config_dir)n缓存变量($caching)n缓存目录变量($cache_dir)n缓存有效期变量($cache_lifetime)11.3 技术准备v11.3.1 Smarty程序设计n2Smarty程序设计中方法nassign()方法nassign()方法用于为模板变量赋值。语法格式如下:nvoid assign(string v

4、arname,mixed var)n参数varname表示被赋值的模板变量的名称,参数var是赋 给变量的值。ndisplay()方法ndisplay()方法用于显示指定模板。语法格式如下:nvoid display (string template ,string cache_id ,string compile_id)n参数template表示模板资源的类型和路径,参数cache_id 用于指定缓存号,参数compile_id用于指定编译号。11.3 技术准备v11.3.2 Smarty的安装配置n1.Smarty的安装n2.Smarty的配置n确定Smarty类库的存储位置,包含Smar

5、ty.class.php类文件,然后进 行实例化,只有实例化之后才能调用类里面的属性和方法。ninclude_once(“smarty/Smarty.class.php“); /包含smarty类文 件n$smarty = new Smarty(); /建立smarty实例对象$smartyn新建templates、templates_c和smarty_cache 3个文件夹,分别用于 存放模板文件、编译文件和缓存文件。目录创建好之后,需要设置 Smarty对象中的$template_dir、$compile_dir、$cache_dir属性, 指明模板文件夹、编译文件夹和缓存文件夹的位置。n

6、$smarty-template_dir = “./templates“; /设置模板目录位置n$smarty-compile_dir = “./templates_c“; /设置编译目录位置n$smarty-cache_dir = “./smarty_cache“; /设置缓存目录位置11.3 技术准备v11.3.2 Smarty的安装配置n2.Smarty的配置n通过设置$caching属性可以设置Smarty是否启用缓存,其值为 ture表示启用缓存,值为false表示关闭缓存。项目在调试期 间,不建议启用缓存,发布时启用缓存。配置代码如下:n$smarty-caching=false;

7、 /关闭缓存n配置Smarty时还需要定义在模板文件中编写Smarty代码的左右 边界符,通过设置$left_delimiter和$right_delimiter属性 可以设置左右边界符,边界符通常使用# #、 或,也可 以组合使用。配置代码如下:n$smarty-left_delimiter = “; /左边界符设为n$smarty-right_delimiter = “; /右边界符设为n3Smarty的简单应用11.3 技术准备v11.3.3 Smarty模板设计n1Smarty的内建函数ninclude包含函数ninclude函数用于在当前模板中包含其它模板,当前模板 中的变量在被包含

8、的模板中可用。函数语法格式如下:ninclude file=“file_name“ assign=“ var=“n参数file为必选参数,用于指定包含模板文件的名称;参 数assign用于指定一个变量保存包含模板的输出;参数 var用于传递给待包含模板的本地参数,它只在待包含模 板中有效。11.3 技术准备v11.3.3 Smarty模板设计n1Smarty的内建函数nforeach循环控制nSmarty模板中的foreach语句可以循环输出数组,一般用 来处理一维数组。语法格式如下:nforeach name=foreach_name key=key item=item from=arr_n

9、amen.n/foreachn参数name为循环的名称,key为当前数组的键值,item为 当前元素的变量名,from为该循环的数组,其中item和 from为必选参数,不可省略。n例11-111.3 技术准备v11.3.3 Smarty模板设计n1Smarty的内建函数nsection循环控制nSection语句是Smarty中的另一个循环语句,该语句可用 于比较复杂的数组。语法格式如下:nsection name=“sec_name“ loop=$arr_name start=num step=num max= show= n n/sectionn参数name表示循环的名称;loop为循环

10、的数组;start表 示循环的初始位置,如start=3说明循环是从数组的第3个 元素开始的;step表示步长,如step=2表示循环每执行一 次后数组的指针将向下移动两位;max表示循环的最大执 行次数;show决定是否显示该循环。其中name和loop是必 选参数。section语句可以嵌套使用。n例11-2 11.3 技术准备v11.3.3 Smarty模板设计n2变量调节器nSmarty内置了一些变量调节器,跟PHP中的内部函数 类似,变量调节器可用于操作变量,自定义函数和 字符串。他可以帮助我们完成一些实用的功能,例 如字符串的拆分、替换和截取等。n例11-3 11.3 技术准备v1

11、1.3.4 Smarty缓存nSmarty的缓存机制大大提高了页面访问的速度,减轻 了服务器的压力,是一种理想的Web程序开发方法。n1创建缓存n$smarty-cache_dir=“./smarty_cache“; /设置缓存目录位置n$smarty-caching=true; /启用缓存n2缓存的生命周期n$smarty-cache_lifetime=3600; /设置缓存时间为一小时n3清除缓存n$smarty-clear_all_cache(); /清除所有缓存文件n$smarty-clear_cache(test.html); /清除test.html 模板文件11.4 项目实施v

12、在安装配置好Smarty之后,基于Smarty图书显示程序同样 也需要创建两个文件,Smarty程序文件(showbooks.php )和Smarty模板文件(showbooks.html) v11.4.1 Smarty配置文件 v11.4.2 图书显示程序页设计 v11.4.3 图书显示模板页设计11.5 技术拓展v11.5.1 MVC设计模式n1设计模式n设计模式是对面向对象程序设计中同类问题的一种 解决方案,是一个用来组织代码的模板,它不是一 个能在项目中直接包含和使用的代码库。n2MVC模式视图层向控制器发送用户请求; 接收、显示数据更新控制层接受用户请求;将请求映 射到模型层;选择相

13、应视 图模型层处理业务流程;通知视图 更新数据发送请求更新模型更新后回复控制器选择视图显示给用户11.5 技术拓展v11.5.2 ThinkPHP介绍n1ThinkPHP的下载n2ThinkPHP的安装nThinkPHP2.0 核心包无需单独安装,解压后即可直 接使用。ThinkPHP文件夹中的目录结构如图所示。 11.5 技术拓展v11.5.3 ThinkPHP的应用n使用ThinkPHP完成图书显示功能的开发。n1创建入口文件n2配置项目,连接数据库n3创建模型类(BookModel.class.php)n4创建控制器(IndexAction.class.php)n5定义视图中的模板(in

14、dex.html)11.6 本章小结v 本章我们采用一种新的程序开发方法完成了图书显示模块 的开发。通过Smarty模板技术的应用,采用PHP程序和 HTML模板分离的方法,实现了程序员和美工的分离,是 PHP编程技术的一项重大突破。在此过程中,我们学习了 Smarty模板的安装配置及Smarty程序设计和模板设计部分 的内容。在技术拓展部分,我们介绍了MVC设计模式和基 于MVC的PHP框架ThinkPHP的内容,有能力的同学可以进一 步研究关于设计模式和PHP框架的内容。11.7 强化练习v一、选择题n1对Smarty模板描述错误的是( ) ASmarty模板是Zend完全官方化的模板引擎

15、 BSmarty模板具有强大的表现逻辑功能 CSmarty模板的特点是只适用于PHP程序员 DSmarty模板具有模板编译、缓存等优良的特性n2在安装Smarty模板时,最后创建存储Smarty模板和 配置文件的两个目录是( ) Atemplates configs_dir template_dir cache_dir Btemplates configs templates_c cache Ctemplates_dir configs complie cache Dtemplate_dir configs_dir complie_dir cache_dir 11.7 强化练习v 一、选择题n

16、3Smarty模板引擎需要在PHP的应用程序逻辑和页面模板中配合使用,才能 完全分离表现层和逻辑层。在PHP程序中以下哪个步骤执行了编译的过程,将 模板转换为PHP脚本( ) A加载Smarty模板引擎类,建立Smarty对象 B修改Smarty的默认行为 C将程序中动态获取的变量,通过Smarty对象中的assign()方法置入 模板里 D利用Smarty对象中的display()方法将模板内容输出n4在使用Smarty模板时可以为其创建配置文件,作为修改程序执行行为的操 作接口,下面对Smarty配置文件描述不正确的一项是( ) A配置文件在Smarty模板中的应用,有利于设计者管理文件中的模板 全局变量 B配置文件的名称可以任意命名,但一定要保存在Smarty引擎可以找 到的目录中 C通过在Smarty模

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号