PHP Smarty 3.0模板引擎 详细使用指南

上传人:飞*** 文档编号:23653887 上传时间:2017-12-02 格式:DOC 页数:33 大小:206.50KB
返回 下载 相关 举报
PHP Smarty 3.0模板引擎 详细使用指南_第1页
第1页 / 共33页
PHP Smarty 3.0模板引擎 详细使用指南_第2页
第2页 / 共33页
PHP Smarty 3.0模板引擎 详细使用指南_第3页
第3页 / 共33页
PHP Smarty 3.0模板引擎 详细使用指南_第4页
第4页 / 共33页
PHP Smarty 3.0模板引擎 详细使用指南_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《PHP Smarty 3.0模板引擎 详细使用指南》由会员分享,可在线阅读,更多相关《PHP Smarty 3.0模板引擎 详细使用指南(33页珍藏版)》请在金锄头文库上搜索。

1、1、安装 Smarty3.0一、什么是 smarty?smarty 是一个使用 PHP 写出来的模板 PHP 模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用 PHP 程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。二、smarty 优点:1. 速度:采用 smarty 编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。2. 编译型:采用 smarty 编写的程序在运行时要编译成一个非模板技术的 PHP 文件,这个文件采用了 PHP 与 HTML 混合的

2、方式,在下一次访问模板时将 WEB 请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下) 3. 缓存技术:smarty 选用的一种缓存技术,它可以将用户最终看到的 HTML 文件缓存成一个静态的 HTML 页,当设定 smarty 的 cache 属性为 true 时,在 smarty 设定的cachetime 期内将用户的 WEB 请求直接转换到这个静态的 HTML 文件中来,这相当于调用一个静态的 HTML 文件。4. 插件技术:smarty 可以自定义插件。插件实际就是一些自定义的函数。5. 模板中可以使用 if/elseif/else/endif。在模板文件使用

3、判断语句可以非常方便的对模板进行格式重排。三、不适合使用 smarty 的地方:1. 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用 smarty 会使模板处理速度变慢。2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用 smarty 会丧失php 开发迅速的优点。打开 smarty 的官方网站, Smarty 3.0rc4,目前仍然是处于 rc 版本(Release.Candidate. 就是发行候选版本,与 beta 版本相比,不再有功能的增加,主要着重于除错!) 。有 tar.gz 和 zip 分别适用于 linux 和 windows 版

4、本。下载好后 tar zxvf Smarty 3.0rc4.tar.gz目录中,demo 文件夹为示例文件。Libs 为程序文件。/libs/Smarty.class.php #主文件/libs/sysplugins/ #内部 plugin/libs /plugins/ #外部 plugin,可自由扩充/demo/cahce/ #放置缓存文件/demo/configs / #放置可以载入的配置文件/demo/templates/ #放置模板文件/demo/templates_c/ #放置对模板编译后的文件最好在需要进行 smarty 处理的文件的目录中创建与 demo 中的相同的文件夹(注意文

5、件夹具有 web 用户写权限) ,当然也可以更改文件夹名和路径,默认值为处于被 smarty处理的文件的同级目录。Smarty3.0 需要 php5.0 以上。-2、调试 Smarty3.0创建自己的文件,比如 index.php。在 templates 目录中创建模板 index.tpl(几乎可以是任何文本文件的扩展名,常用的是 tpl,php,html,不建议使用后两者,因为可以从浏览器直接访问而不安全。可以对 apache 的 httpd.conf 进行设置,禁止直接访问.tpl 文件。或者将 templats 目录放在网站文档树之外。 )Index.php require_once(.

6、/./Smarty-3.0rc4/libs/Smarty.class.php);$smarty = new smarty();$smarty-assign(name,韩灵稚);$smarty-display(templates/index.tpl );Index.tpl的代码:你好, $nameSmarty 编译时的处理过程是源 php 文件-模板文件(可能多次调用)-源 php 文件。 。 。也就是说不影响原 php 文件的其他处理和输出。所以 smarty 模板文件可以是完整的 html,也可以是其中一部分。-3、Smarty3.0 基础3.1 smarty 处理过程smarty 将 ph

7、p 源文件,首先编译成中间文件(也是 php) ,如果启用缓存,再根据编译文件生成缓存文件(也是 php),需要缓存的部分全部是硬编码。之后的每次访问都会访问编译文件(如果编译文件已经存在) ,一次编译多次调用(可以是单文件的多次,也可以是多文件的多次) ,如果启用缓存且有缓存文件而且没有过期,则直接访问缓存文件,跳过编译文件。编译文件一经生成,就不会被自动更新,除非模板文件或者配置文件更改。源 php 文件修改是不会引发重新编译的。一旦编译文件重新生成,缓存文件也必然重新生成。Smarty 允许有两种特殊的编译设置存在:1、 任何时候都不自动重新编译(上线阶段):只有没有该文件的编译文件时才

8、生成,模板文件或者配置文件的更改,不会引发重新编译。$smarty-setCompile_check(false) #默认为 true,false 表示任何时候都不在发生文件变更的情况下生成编译文件,除了无编译文件。$smarty-getCompile_check() #获得当前编译检查的设置2、任何时候都重新编译(调试阶段):任何时候都重新编译。$smarty-setForce_compile(true) #默认为 false,true 表示每次都重新编译(启用缓存的话,每次都重新缓存)$smarty-getForce_compile() #获得当前强制编译的设置3.2 分界符 在模板文件中

9、,区分普通 html 代码和 smarty 代码靠的是分界符。默认情况下是“ “,但是与 js 和 css 相冲突。可以进行变更。在 3.0 中模板标签将不支持空格,如 $abc 在Smarty2 中可以识别的,但是 3.0 里头就不行了,必须这样$abc,这样是为了能够更好的支持 javascript 和 css。$smarty-left_delimiter = right_delimiter = ; #右分界符,2.0 属性,3.0 沿用注意:将默认分界符修改后,在 3.0 模板中仍然不支持空格,比如 ,无效。3.3 注释* smarty 用*包含的文字为注释内容 *如果默认分界符修改为“

10、, 。注释中的模板变量无效。3.4 模板包含文件格式 include file=要包含的文件名称 Head.tpl这是顶部内容,欢迎你,$nameIndex.tpl 中加一下代码include file=head.tpl输出结果:这是顶部内容,欢迎你,韩灵稚。您好,韩灵稚!除了包含其他配置文件,还可以包含 html、php(需要开启 smarty 支持 php 模板的选项,最好使用 include_php 函数)。包含文件还可以使用传参。Head.tpl$nr,欢迎你,$nameIndex.tplinclude file=head.tpl nr=”这是顶部内容”输出结果同上。3.5 载入配置文

11、件可以预先规定一系列的变量与值的对应,并放在配置文件中,在使用时载入。配置文件一般放在 configs 文件夹中,可以自定义。My.confgv = my.conf 中的全局变量 #全局配置变量,任何时候调用,都将被载入#如果$sections,未设置,显示全部变量color #局部配置变量fontcolor = red #如果$sections,设置为 red,只显示全局变量和 color中的变量size #局部配置变量fontsize = 12px #如果$sections,设置为 size,只显示全局变量和size中的变量调用配置文件有两种方法,一种是在源文件处,一种是在模板文件处。源文

12、件处:$smarty-configLoad($config_file, $sections = null)模板文件处:config_load file=载入的配置文件 section=”选取的局部变量(可选)”scope=“作用模板范围(可选) “如果使用源文件的方法,载入的配置文件变量的作用模板范围自动为 global,而且可以应用到多个模板中(smarty 对象调用了多个模板) 。如果使用后者,灵活性更大。单个模板中 config_load 的 scope 参数的范围可以是local(本模板,只能本模板使用这些变量) , parent(父模板或者文件) 或 global(同一个 smart

13、y 对象所调用的所有模板,其他模板不需要再载入该配置文件)在模板文件中使用配置变量#配置变量#或者$smarty.config. 变量名称【相关函数】$smarty-getConfigVariable($variable) #返回某个模板变量,该变量必须是 parent 或者是global$smarty-getConfigVars($varname = null) #返回模板变量数组,或者单个变量。该变量或者变量组必须是 parent 或者是 global$smarty-clearConfig($varname = null) #清除所有配置变量或者指定的一个配置变量$smarty-setCo

14、nfig_overwrite(false) #如果设变量为真,则从配置文件中读取出来的变量(如果变量名称相同)将会由最后一个值覆盖。反之,变量将会放到一个数组中。不能用数组索引去访问,可以使用cycle 函数。该属性也有 getConfig_overwrite 函数。$smarty-setConfig_booleanize(true); #设置为 true 的话,配置文件中的 on/true/yes/1 和 off/false/no/0 值会自动转化为布尔值,false 将变为字符串(如果作为判断条件,永远为真) 。该属性也有 getConfig_booleanize 函数。3.6 环境配置S

15、mary 脚本中是可以动态设置编译、模板、缓存、配置路径。$smarty-template_dir = ./templates; #设置模板目录,2.0 设置方法,3.0 沿用但不推荐$smarty-compile_dir = ./templates_c; #设置编译目录, 2.0 设置方法,3.0 沿用但不推荐$smarty-config_dir = ./configs/; #设置配置目录,2.0 设置方法,3.0 沿用但不推荐$smarty-cache_dir = ./cache/; #设置缓存目录,2.0 设置方法,3.0 沿用但不推荐Smary 在 3.0 中对属性进行了封装。可以使用如下方法进行访问获得目录。$smarty-getCacheDir(); #得到当前缓存目录路径$smarty-getTemplateDir(); #得到当前模板目录路径的数组$smar

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

当前位置:首页 > 行业资料 > 其它行业文档

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