ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:26.23KB ,
资源ID:10028187      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10028187.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ThinkPhp模板指南.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ThinkPhp模板指南.docx

1、ThinkPhp模板指南ThinkPhp模板指南.txt我是天使,回不去天堂是因为体重的原因。别人装处,我只好装经验丰富。泡妞就像挂QQ,每天哄她2个小时,很快就可以太阳了。模板指南ThinkPHP内置了一个基于XML的性能卓越的模板引擎 ThinkTemplate,这是一个专门为ThinkPHP服务的内置模板引擎。ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。其特点包括:2 支持XML标签库和普通标签的混合定义;2 支持直接使用PHP代码书写;2 支持文件包含和布局模板;2 支持多级标签嵌套;2

2、 一次编译多次运行,编译和运行效率非常高;2 模板文件更新,自动更新模板缓存;2 系统变量无需赋值直接输出;2 支持多维数组的快速输出;2 支持模板变量的默认值;2 支持页面代码去除Html空白;2 支持变量组合调节器和格式化功能;2 允许定义模板禁用函数;2 通过标签库方式扩展。每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的PHP文件。模板缓存默认位于项目的Runtime/Cache目录下面,以模板文件的md5编码作为缓存文件名保存的,如果开启页面Trace功能的话,可以在Trace信息里面看到当前页面对应的模板缓存文件名。如果在模板标签的使用过程中发现问题,可

3、以尝试通过查看模板缓存文件找到问题所在。内置的模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的:普通标签主要用于输出变量和做一些基本的操作;XML标签除了包含了普通标签的所有功能外,还可以完成一些逻辑判断、控制和循环输出,但是在变量输出上,普通标签具有简洁明了的优势。例如:$name 看起来比 更加容易使用,但是在控制和判断方面,XML标签却有着普通标签无法替代的作用。这种方式的结合保证了模板引擎的简洁和强大的有效融合。变量输出我们已经知道了在Action中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢?如果我们在Action中赋值了一个nam

4、e模板变量:$name = ThinkPHP;$this-assign(name,$name);使用内置的模板引擎输出变量,只需要在模版文件使用:$name模板编译后的结果就是最后运行的时候就可以在标签位置显示ThinkPHP的输出结果。注意模板标签的和$之间不能有任何的空格,否则标签无效。普通标签默认开始标记是 ,结束标记是 。也可以通过设置TMPL_L_DELIM和TMPL_R_DELIM进行更改。例如,我们在项目配置文件中定义:TMPL_L_DELIM=,那么,上面的变量输出标签就应该改成:后面的内容我们都以默认的标签定义来说明。assign方法里面的第一个参数才是模板文件中使用的变量名

5、称。如果改成下面的代码:$name = ThinkPHP;$this-assign(name2,$name);再使用$name 输出就无效了,必须使用 $name2 才能输出模板变量的值了。 如果我们需要把一个用户数据对象赋值给模板变量:$User = M(name);$user = $User-find(1);$this-assign(user,$user);也就是说$user其实是一个数组变量,我们可以使用下面的方式来输出相关的值:$username / 输出用户的名称$useremail / 输出用户的email地址 如果$user是一个对象而不是数组的话,$User = M(name)

6、;$User-find(1);$this-assign(user,$User);可以使用下面的方式输出相关的属性值:$user:name / 输出用户的名称$user:email / 输出用户的email地址 为了方便模板定义,还可以支持点语法,例如,上面的$username / 输出用户的名称$useremail / 输出用户的email地址可以改成$user.name$user.email因为点语法默认的输出是数组方式,所以上面两种方式是在没有配置的情况下是等效的。我们可以通过配置TMPL_VAR_IDENTIFY参数来决定点语法的输出效果,以下面的输出为例:$user.name如果TMP

7、L_VAR_IDENTIFY设置为array,那么$user.name和$username等效,也就是输出数组变量。如果TMPL_VAR_IDENTIFY设置为obj,那么$user.name和$user:name等效,也就是输出对象的属性。如果TMPL_VAR_IDENTIFY留空的话,系统会自动判断要输出的变量是数组还是对象,这种方式会一定程度上影响效率,而且只支持二维数组和两级对象属性。如果是多维数组或者多层对象属性的输出,可以使用下面的定义方式:$user.sub.name / 使用点语法输出或者使用$usersubname / 输出三维数组的值$user:sub:name / 输出对

8、象的多级属性使用函数仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用。用于模板标签的函数可以是PHP内置函数或者是用户自定义函数,和smarty不同,用于模板的函数不需要特别的定义。模板变量的函数调用格式为:$varname|function1|function2=arg1,arg2,# 说明: 和 $ 符号之间不能有空格 ,后面参数的空格就没有问题#表示模板变量本身的参数位置 支持多个函数,函数之间支持空格 支持函数屏蔽功能,在配置文件中可以配置禁止使用的函数列表 支持变量缓存功能,重复变量字串不多次解析

9、使用例子:$webTitle|md5|strtoupper|substr=0,3编译后的PHP代码就是:注意函数的定义和使用顺序的对应关系,通常来说函数的第一个参数就是前面的变量或者前一个函数使用的结果,如果你的变量并不是函数的第一个参数,需要使用定位符号,例如:$create_time|date=y-m-d,#编译后的PHP是:函数的使用没有个数限制,但是可以允许配置TMPL_DENY_FUNC_LIST定义禁用函数列表,系统默认禁用了exit和echo函数,以防止破坏模板输出,我们也可以增加额外的定义,例如:TMPL_DENY_FUNC_LIST=echo,exit,halt多个函数之间使

10、用半角逗号分隔即可。 并且还提供了在模板文件中直接调用函数的快捷方法,无需通过模板变量,包括两种方式:1、执行方法并输出返回值:格式::function() 例如,输出U方法的返回值::U(User/insert)编译后的PHP代码是 2、执行方法但不输出:格式:function() 例如,调用say_hello函数:say_hello(ThinkPHP)编译后的PHP代码是:系统变量除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。1、系统变量:包括ser

11、ver、session、post、get、request、cookie$Think.server.script_name / 输出$_SERVER变量$Think.session.session_id|md5 / 输出$_SESSION变量$Think.get.pageNumber / 输出$_GET变量$Think.cookie.name / 输出$_COOKIE变量支持输出$_SERVER、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE变量。后面的server、cookie、config不区分大小写,但是变量区分大小写。例如:$Thi

12、nk.server.script_name 和$Think.SERVER.script_name 等效SESSION 、COOKIE还支持二维数组的输出,例如:$Think.CONFIG.user.user_name$Think.session.user.user_name系统不支持三维以上的数组输出,请使用下面的方式输出。 以上方式还可以写成:$_SERVER.script_name / 输出$_SERVER变量$_SESSION.session_id|md5 / 输出$_SESSION变量$_GET.pageNumber / 输出$_GET变量$_COOKIE.name / 输出$_COO

13、KIE变量 2、系统常量 :使用$Think.const 输出$Think.const._SELF_ $Think.const.MODULE_NAME 或者直接使用$Think._SELF_ $Think.MODULE_NAME 3、特殊变量 :由ThinkPHP系统内部定义的常量$Think.version /版本 $Think.now /现在时间 $Think.template|basename /模板页面 $Think.LDELIM /模板标签起始符号 $Think.RDELIM /模板标签结束符号 4、配置参数 :输出项目的配置参数值$Think.config.db_charset输出

14、的值和C(db_charset) 的返回结果是一样的。也可以输出二维的配置参数,例如:$Think.config.user.user_name 5、语言变量:输出项目的当前语言定义值$Think.lang.page_error输出的值和L(page_error)的返回结果是一样的。快捷输出为了使得模板定义更加简洁,系统还支持一些常用的变量输出快捷标签,包括:var /输出Session变量 和 $Think.session.var 等效#var /输出Cookie变量 和 $Think.cookie.var 等效&var /输出配置参数 和 $Think.config.var 等效%var /

15、输出语言变量 和 $Think.lang.var 等效.var /输出GET变量 和 $Think.get.var 等效var /输出POST变量 和$Think.post.var 等效*var /输出常量和 $Think.const.var 等效如果需要输出二维数组,例如 要输出$_SESSIONvar1var2的值 快捷输出可以使用:var1.var2 的方式同理 #var1.var2 可以输出 $_COOKIEvar1var2的值。必须注意的是:快捷输出的变量不支持函数的使用。所以,下面的用法是错误的:#var|strlen默认值输出如果输出的模板变量没有值,但是我们需要在显示的时候赋予

16、一个默认值的话,可以使用default语法,格式:$变量|default=默认值这里的default不是函数,而是系统的一个语法规则,例如:$user.nickname|default=这家伙很懒,什么也没留下对系统变量的输出也可以支持默认值,例如:$Think.post.name|default=名称为空因为快捷输出不支持使用函数,所以也不支持默认值,默认值支持Html语法。包含文件可以使用Include标签来包含外部的模板文件,使用方法如下:1、 使用完整文件名包含格式:例如:这种情况下,模板文件名必须包含后缀。使用完整文件名包含的时候,特别要注意文件包含指的是服务器端包含,而不是包含一个

17、URL地址,也就是说file参数的写法是服务器端的路径,如果使用相对路径的话,是基于项目的入口文件位置。 2、包含当前模块的其他操作模板文件格式:例如 导入当前模块下面的read操作模版:操作模板无需带后缀。 3、 包含其他模块的操作模板格式:例如,包含Public模块的header操作模版: 4、包含其他模板主题的模块操作模板格式:例如,包含blue主题的User模块的read操作模版: 5、 用变量控制要导入的模版格式:例如 给$tplName赋不同的值就可以包含不同的模板文件,变量的值的用法和上面的用法相同。 6、使用快捷方式包含文件格式:include:模板文件规则其中的模板文件规则可

18、以使用上面提到的5种方式。注意:由于模板解析的特点,从入口模板开始解析,如果外部模板有所更改,模板引擎并不会重新编译模板,除非缓存已经过期。如果修改了包含的外部模板文件后,需要把模块的缓存目录清空,否则无法生效。导入文件传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用: 系统提供了专门的标签来简化上面的导入:第一个是import标签 ,导入方式采用类似ThinkPHP的import函数的命名空间方式,例如:Type属性默认是js, 所以下面的效果是相同的:还可以支持多个文件批量导入,例如:导入外部CSS文件必须指定type属性的值,例如:上面的方式默认的import的起始路径是网站

19、的Public目录,如果需要指定其他的目录,可以使用basepath属性,例如: 第二个是load标签,通过文件方式导入当前项目的公共JS或者CSS例如:在href属性中可以使用特殊模板标签替换,例如:Load标签可以无需指定type属性,系统会自动根据后缀自动判断。系统还提供了两个标签别名js和css 用法和load一致,例如: 另外,系统提供了普通标签的方式加载外部js和css文件。load: _PUBLIC_/Js/Common.jsload: ./Public/Css/common.css Volist标签Volist标签主要用于在模板中循环输出数据集或者多维数组。通常模型的selec

20、t和findall方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在Action中首先对模版赋值:$User = M(User);$list = $User-select();$this-assign(list,$list); 在模版定义如下,循环输出用户的编号和姓名:$vo.id$vo.nameVolist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,例如:$data.id$data.name支持输出部分数据,例如输出其中的第515条记录$vo.name 输出偶数记录$vo.na

21、meMod属性还用于控制一定记录的换行,例如:$vo.name 输出循环变量$k.$vo.name如果没有指定key属性的话,默认使用循环变量i,例如:$i.$vo.name如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:$key.$vo.namevolist还有一个别名iterate,用法和volist是一样。Foreach标签foreach标签也是用于循环输出$vo.id$vo.nameForeach标签相对比volist标签简洁,没有volist标签那么多的功能。优势是可以对对象进行遍历输出,而volist标签通常是用

22、于输出数组。Switch标签模板引擎支持Switch标签,格式为:输出内容1输出内容2默认情况使用方法如下:value1value2default其中name属性可以使用函数以及系统变量,例如:admindefault对于case的value属性可以支持多个条件的判断,使用”|”进行分割,例如:图像格式其他格式表示如果$_GETtype 是gif、png或者jpg的话,就判断为图像格式。也可以对case的value属性使用变量,例如:adminmemberdefault使用变量方式的情况下,不再支持多个条件的同时判断。比较标签模板引擎提供了丰富的判断标签,比较标签的用法是:内容系统支持的比较标签以及所表示的含义分别是:2 eq或者 equal:等于2 neq 或者notequal:不等于2 gt:大于2 egt:大于等于2 lt:小于2 elt:小于等于2 heq:恒等于2 nheq:不恒等于他们的用法基本是一致的,区别在于判断的条件不同。例如,要求name变量的值等于value就输出,可以使用:value或者value也可以支持和else标签混合使用:相等不相等 当 name变量的值大于5就输出gt name=name

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1