在开发过程中,我们需要写控制器、模型、验证代码。最后要写模板代码,如果是前后端分离项目则不用写模板了。直接在接口中返回数据就可以了。模板代码包含了很多知识,下面举例介绍一下;
代码变量输出
1、常见的输出方式是使用大括号({})的形式,里面写入变量名称。在runtime/temp目录下可以看到编译后的文件,括号解析成了?php?的形式,并且里面包含htmlentities。命令如下(注意$和{之间不能存在空格):
{$data}
2、原样解析,如果解析富文本内容时使用,使用示例:
{$data
raw}
3、默认值,使用示例:
{$data
default=这是一个默认值}
4、系统变量输出,主要是获取用户昵称,使用示例:
{$Think.session.name}
5、常量输出,使用示例:
{$Think.PHP_VERSION}
6、配置输出,主要是获取基础网址,使用示例:
{$Think.config.default_module}
PHP使用函数
1、框架内置规则:
2、应用方式:
2.1、单函数应用,使用示例:
{$data.name
md5}
2.2、多函数应用,使用示例:
{$name
md5
upper
substr=0,3}
互联网开发运算符
1、常见运算符
2、三元运算符
2.1、默认写法
{$status?正常:错误}
2.2、简单写法,表示有则输出,无则输出默认值
{$name??默认值}
2.3、为真写法,表示为真的时候才输出默认值
{$name?=默认值}
2.3、真假写法、表示为真输出值,否则输出默认值
{$name?:NO}
2.4、表达式写法,表达式为真则输出值一,否则输出值二
{$a==$b?yes:no}
程序代码原样输出
原样输出使用较少,如果想让输出内容不被模板标签所解析,使用如下命令进行输出:
{literal}Hello,{$name}!{/literal}
模板注释
模板注释和代码注释是两种方式,模板注释不会在页面上查看到被注释的代码,而代码注释则可以查看的到。使用方式如下:
{/*这是模板注释内容*/}或{//这是模板注释内容}
模板布局
模板布局总结来说就两点:配置和模板;
配置分为模块配置和应用配置,一般情况下后台多应用模板布局方式,在后台模块config/template.php文件内(默认不存在,需手动创建)设置如下代码:
layout_on=true,//开启布局模式layout_name=layout,//布局文件名称,可设置为index/layout目录形式layout_item={__REPLACE__}//输出替换变量
模板继承
在实际项目开发过程中使用较少,主要是因为继承过于麻烦。
包含文件
在实际项目开发过程中,前端页面使用较多,使用方式较为单一;
1、使用模版文件,多个文件使用逗号分隔;
{includefile=public/header,public/menu/}
2、传入参数,此方式需注意模板中变量值必须存在;
{includefile=Public/headerkeywords=开源WEB开发框架/}
开发代码输出替换
1、配置,在应用或模块配置目录下的template.php文件中进行如下代码配置:
tpl_replace_string=[__STATIC__=/static,__JS__=/static/javascript,]
2、总结,优点:方便更改;但是不建议使用,建议在开发过程中设置好目录位置。
标签库
标签库类似于Java的Struts中的JSP标签库,每一个标签库是一个独立的标签库文件,标签库中的每一个标签完成某个功能,采用XML标签方式(包括开放标签和闭合标签)。具体内容请参考官方文档。
内置标签
1、普通循环标签,使用示例:
{volistname=listid=vokey=k}{$k}.{$vo.name}{/volist}
如果没有指定key属性的话,默认使用循环变量i
2、控制输出行数,如输出其中的第5~15条记录,使用示例:
{volistname=listid=vooffset=5length=10}{$vo.name}{/volist}
3、比较标签(不常用)
4、SWITCH标签(不常用),使用示例:
{switchUser.level}{case1}value1{/case}{case2}value2{/case}{default/}default{/switch}
5、资源文件加载(常用),使用实例:
{loadhref=/static/js/