网站开发技术培训

上传人:luobi****88888 文档编号:92151378 上传时间:2019-07-07 格式:PPT 页数:29 大小:212.50KB
返回 下载 相关 举报
网站开发技术培训_第1页
第1页 / 共29页
网站开发技术培训_第2页
第2页 / 共29页
网站开发技术培训_第3页
第3页 / 共29页
网站开发技术培训_第4页
第4页 / 共29页
网站开发技术培训_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《网站开发技术培训》由会员分享,可在线阅读,更多相关《网站开发技术培训(29页珍藏版)》请在金锄头文库上搜索。

1、网站开发技术高级篇,日照职业技术学院 毛书朋 2008.4,第七部分 模版技术(smarty),提纲,模版smarty的产生 什么是smarty Smarty的特点 Smarty的应用 安装 第一个程序 详解,模版smarty的产生,一个应用程序的开发流程如下: 提交计划文档 界面设计者美工制作了网站的外观模型,然后把它交给后台程序员。 程序员使用PHP实现商业逻辑,同时使用外观模型做成基本架构。然后工程被返回到html页面设计者继续完善。 就这样工程可能在后台程序员和页面设计者之间来来回回好几次。由于后台程序员不喜欢干预任何有关html标签,同时也不需要美工们和php鬼混在一起;美工设计者只

2、需要配置文件,动态区块和其他的界面部分,不必要去接触那些错综复杂的php代码 。 因此,这时候有一个很好的模板支持就显得很重要了。,模版smarty的产生,早在1999年后期,我们就已经开始为模板引擎写说明文档。在完成这个文档之后,我们开始用c写一个模板引擎,并有希望被包含到php里去。在 撞上了许多的技术难题的同时,“什么是模板应该做的,什么不该做”这个问题,也被热烈的讨论着。从这些经验,我们决定应该用Php将模板引擎写成一个类,让任何觉得合适的人使用它。,模版smarty的产生,所以我们写了一个引擎,从此就有了smarty.(注:这个类以前从来没有公开发表过)。这个类几乎达到了我们所有的要

3、求:常规变量替换,支持包括其他模板,使用配置文件集成设置,嵌入Php代码,限制if语句的作用,还有更多的可以多层嵌套的健壮的动态区块。它用常规表达式做到这一切,于是代码变得相当简洁,我们可以说:令人费解的。在每次调用的时候,都要去解析 那些语法和常规表达式,于是在大型应用的时候,它显然慢了下来。在程序员的眼光看来,最大的问题还是使用php脚本建立和处理模板和动态区块的所有必要工作。我们应该如何使他变得更简单?,模版smarty的产生,我们可以想象smarty应该有怎样的最后表现。我们知道php代码如果没有了模板解析的开销将有多快,我们也知道从一般的美工看来php语言是多么的“恐怖”,然而这一切

4、可以被一种更简单的模板语法掩饰掉。我们应该怎样把这两种方法的长处结合起来? 于是,Smarty诞生了,什么是smarty,Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人。 例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现。在Smarty的程序里,这些被忽略了。模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等)。有一天程序员

5、想要改变文章检索的方式(也就是程序逻辑的改变)。这个改变不影响模板设计者,内容仍将准确的输出到模板。同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑。因此,程序员可以改变逻辑而不需要重新构建模板,模板设计者可以改变模板而不影响到逻辑。,Smarty的特点-优点,速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。 2. 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)

6、,Smarty的特点-优点,3. 缓存技术:smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定smarty的cache属性为true时,在smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。 4. 插件技术:smarty可以自定义插件。插件实际就是一些自定义的函数。 5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。,Smarty的特点-缺点,1. 需要实时更新的内容。例如像股票显示,它需要经常对数

7、据进行更新,这类型的程序使用smarty会使模板处理速度变慢。 2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用smarty会丧失php开发迅速的优点。,Smarty的应用-安装,安装smarty的环境:php版本4.06以上版本。 安装smarty方法非常简单,从http:/ 其它高级安装使用方法请看手册. 安装Smarty发行版在/libs/目录里的库文件(就是解压了). 这些php文件你可不能乱画哦.这些文件被所有应用程序共享,也只能在你升级到新版的smarty的时候得到更新。,Smarty的应用-第一个程序,编写一个模版文件:index.tpl * 显示是smarty

8、变量识符里的用*包含的文字为注释内容 * 我的第一个smarty应用实例 大家好,我是$name, 欢迎大家访问我的第一个smarty应用实例!。 CopyRight© ET工作室 2008年4月 Email: ,Smarty的应用-第一个程序,编写php文件:index.php template_dir = “./templates“; /设置模板目录 $smarty-compile_dir = “./templates_c“; /设置编译目录 $smarty-left_delimiter = “; /定义左边界符 $smarty-right_delimiter = “; /定义右

9、边界符 $smarty-assign(“name”, “来自火星的ET”); /进行模板变量替换 /编译并显示位于./templates下的index.tpl模板 $smarty-display(“index.tpl“); ?,Smarty的应用-详解,一、应用的基本设置 包含smarty类文件 include_once(“./comm/Smarty.class.php“); 建立smarty实例对象$smarty $smarty = new Smarty(); 设置模板目录 $smarty-template_dir = “./templates“; 设置编译目录 $smarty-compil

10、e_dir = “./templates_c“;,Smarty的应用-详解,一、应用的基本设置 设置缓存目录 $smarty-cache_dir = “./cache“; 设置缓存时间 $smarty-cache_lifetime = 60 * 60 * 24; 缓存设置 $smarty-caching = false|true; 这里是调试时设为false,发布时请使用true,Smarty的应用-详解,一、应用的基本设置 定义边界符 $smarty-left_delimiter = “; $smarty-right_delimiter = “; 进行模板变量替换 $smarty-assig

11、n(“name”, “变量内容”); 编译并显示位于./templates下的模板 $smarty-display(“模版文件名“); $smarty-display(“index.tpl“);,Smarty的应用-详解,一、应用的基本设置 模版文件中的注释 $smarty-left_delimiter * * $smarty-right_delimiter * * 模版文件中的文件包含(引用) $smarty-left_delimiter include file=“模版文件名“ $smarty-right_delimiter include file=“header.tpl“ *页面头*,

12、Smarty的应用-详解,二、if,elseif,else if $sex eq “1“ Welcome Sir. elseif $sex eq “2“ Welcome Maam. else Welcome! /if,Smarty的应用-详解,三、foreach foreach:用于循环简单数组,它是一个选择性的section循环,它的定义格式为: foreach from=$array item=array_id foreachelse /foreach 其中,from 指出要循环的数组变量,item为要循环的变量名称,循环次数由from所指定的数组变量的个数所决定。foreachelse用

13、来当程序中传递过来的数组为空时的处理。,Smarty的应用-详解,编写一模版文件:index4.tpl 新闻编号 新闻标题 foreach from=$newsArray item=newsID $newsID.newsID $newsID.newsTitle foreachelse 对不起,数据库中没有新闻输出! /foreach,Smarty的应用-详解,编写一php文件:index4.php $array = array(“newsID“=1, “newsTitle“=“第1条新闻“); $array = array(“newsID“=2, “newsTitle“=“第2条新闻“); $

14、array = array(“newsID“=3, “newsTitle“=“第3条新闻“); $array = array(“newsID“=4, “newsTitle“=“第4条新闻“); $array = array(“newsID“=5, “newsTitle“=“第5条新闻“); $array = array(“newsID“=6, “newsTitle“=“第6条新闻“); $smarty-assign(“newsArray“, $array);,Smarty的应用-详解,四、section section的产生是为解决foreach的不足的,与foreach一样,它用于设计模板内

15、的循环块,它较为复杂,可极大程序上满足程序需要,所以在程序中我习惯使用它而不使用foreach,基本原形为: section name = name loop = $varName start = $start step = $step max = $max show = true,Smarty的应用-详解,四、section name: section的名称,不用加$ $loop: 要循环的变量,在程序中要使用assign对这个变量进行操作。 $start: 开始循环的下标,循环下标默认由0开始 $step: 每次循环时下标的增数 $max: 最大循环下标 $show: boolean类型,

16、决定是否对这个块进行显示,默认为true,Smarty的应用-详解,编写一模版文件:index5.tpl 这里将输出一个数组: 新闻编号 新闻标题 section name=loop loop=$News $Newsloop.newsID $Newsloop.newsTitle sectionelse 对不起,没有任何新闻输入! /section,Smarty的应用-详解,五、PHP+MySQL+Smarty的使用 创建数据库 Create databases news 创建数据表 CREATE TABLE IF NOT EXISTS news_info ( id int(11) NOT NULL auto_increment, title varchar(

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

当前位置:首页 > IT计算机/网络 > 网站策划/UE

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