如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
www.shishicaimh.comshishicaimh.comphp模版引擎的应用今天学习过程中我们将的是php模版引擎的应用,在我们设计网站时一般都是界面美工和页面程序两部分的设计。在大多数的情况下界面设计者也就是我们说的美工,他可能只是精通网页设计而对php编程一窍不通,而php程序员的话对界面设计比较差有可能设计出来的界面客户不能接受。对于这类问题已经有很多解决方案了,其中比较常用的也就是大家经常听见的“模版引擎”,模版引擎消除了界面与程序间的耦合行,也就是说在这种情况下程序员只需要专注程序的开发而不需要去了解界面的设计,而美工同样可以不去了解程序的具体实现,只需要专注界面设计就行了。模版引擎的核心是将页面设计成不包含php代码的模版,在其中页面中有数据展示或者数据请求的时候用特殊表示符来进行标识。而程序员在用到模版时执行将模版中特殊标识符所代表的数据替换就行了。目前流行的php模版引擎有很多今天我们要讲的是smarty。Smarty是目前业界最著名的php模版引擎之一,他将代码逻辑和页面设计完全分类开来,这样有利于美工和程序员直接的合作。(注意:smarty模版不适用与实时更新的内容的项目和小项目)Smarty的使用:在网站上下载下来的Smarty中主要用到的是libs目录中的文件。在我们下载下来的文件中已经包含一个实例,接下来我将一一解释libs/templates(其他内容属于模版自身的内容这里不做解释)下每一个目录录存放的内容:Cache:项目运行中所产生的缓存文件。Configs:项目中运行所需要的配置文件。Plugins:插件文件。Templates:我们开发中美工设计的页面模版存放在该目录。Templates_c:存储我们编译出来后的文件,该目录具有可写可读权限。Smarty程序解释(本段来自百度百科):我们可以看到,smarty的程序部分实际就是符合php语言规范的一组代码,我们依次来解释一下:1:/**/语句:包含的部分为程序篇头注释。主要的内容应该为对程序的作用,版权与作者及编写时间做一个简单的介绍,这在smarty中不是必需的,但从程序的风格来讲,这是一个好的风格。2:include_once语句:它将安装到网站的smarty文件包含到当前文件中,注意包含的路径一定要写正确。3:$smarty=newSmarty():这一句新建一个Smarty对象$smarty,简单的一个对象的实例化。4:$smarty->templates(""):这一句指明$smarty对象使用tpl模板时的路径,它是一个目录,在没有这一句时,Smarty默认的模板路径为当前目录的templates目录,实际在写程序时,我们要将这一句写明,这也是一种好的程序风格。5:$smarty->templates_c(""):这一句指明$smarty对象进行编译时的目录。在模板设计篇我们已经知道Smarty是一种编译型模板语言,而这个目录,就是它编译模板的目录,要注意,如果站点位于linux服务器上,请确保teamplates_c里定义的这个目录具有可写可读权限,默认情况下它的编译目录是当前目录下的templates_c,出于同样的理由我们将其明确的写出来。6:$smarty->left_delimiter与$smarty->right_delimiter:指明在查找模板变量时的左右分割符。默认情况下为"{"与"}",但在实际中因为我们要在模板中使用<script>,Script中的函数定义难免会使用{},虽然它有自己的解决办法,但习惯上我们将它重新定义为"{#"与"#}"或是"<!--{"与"}-->"或其它标志符,注意,如果在这里定义了左右分割符后,在模板文件中相应的要使每一个变量使用与定义相同的符号,例如在这里指定为"<{"与"}>",htm模板中也要相应的将{$name}变成<{$name}>,这样程序才可以正确的找到模板变量。7:$smarty->cache("./cache"):告诉Smarty输出的模板文件缓存的位置。上一篇我们知道Smarty最大的优点在于它可以缓存,这里就是设置缓存的目录。默认情况下为当前目录下的cache目录,与templates_c目录相当,在linux系统中我们要确保它的可读可写性。8:$smarty->cache_lifetime=60*60*24:这里将以秒为单位进行计算缓存有效的时间。第一次缓存时间到期时当Smarty的caching变量设置为true时缓存将被重建。当它的取值为-1时表示建立起的缓存从不过期,为0时表示在程序每次执行时缓存总是被重新建立。上面的设置表示将cache_lifetime设置为一天