boaPHP开发手册v5.5

模板语法

为简化写法,模板语法设计原则上不使用单引号、双引号、逗号等,元素和元素之间一律使用空格,每个标签使用{和}包括起来,支持标签中多层嵌套标签

如果遇到含有空格的元素,可以使用单引号或双引号包括起来,比如:{date 'Y-m-d h:i:s' {$time}},否则会被当做不同元素;空值也可以使用引号,如:''

包含标签

用来包含其他模板文件,语法:{inc 模块.控制器.模板},模块和控制器可省略,省略则代表当前所处环境


{inc home.index.head}
{inc index.head}
{inc head}

常量标签

输出PHP常量或配置,语法:{常量},常量必须大写,模块常量和全局常量写法一致,优先使用模块常量


{CHARSET}
{DATABASE.user} //数组常量用节点式写法
{DATABASE.{$k}} //嵌套变量

变量标签

输出变量,语法:{$变量},必须以$开头。系统环境变量为:$_ENV


{$test_name}
{$_GET.title}
{$_COOKIE.name}
{$_SESSION.user.id}
{$_ENV.var.page} //环境变量['var']['page']
{$test.{$k}.{$v}} //嵌套变量

语言标签

用于多语言环境,语法:{@语言标签},必须以@开头,语言标签采用节点式写法,分别表示模块.语言文件.键


{@boa.error.100}
{@home.index.title}
{@home.index.status.0}
{@home.error.{$code}} //嵌套变量

条件标签

进行条件判断,语法:{if 条件表达式}...{elseif 条件表达式}...{else}...{/if},{elseif}和{else}可选,条件表达式支持标签

支持的逻辑运算符:

  • 逻辑与:&& 或 and
  • 逻辑或:|| 或 or
  • 优先级:()

支持的比较运算符:

  • 恒等于:===
  • 非恒等于:!==
  • 不等于:!= 或 neq
  • 小于等于:<= 或 le
  • 大于等于:>= 或 ge
  • 等于:== 或 eq
  • 大于:> 或 gt
  • 小于:< 或 lt


{if {date Y-m-d} == {$d} or ($a > 1 && $b == 2)}
	...
{elseif {date Y-m-d} == {$b} || $c == 3}
	...
{else}
	...
{/if}

循环标签

遍历一组数据,语法:{list 数据 键 值},键可选,数据支持标签


{$i++}
{list $arr $k $v}
	{$i++}:{$k} = {$v} <br>
{/list}

数据标签

获取模型中的数据,语法:{$结果变量 模块.模型文件.方法 参数1 参数2 ...},获得的数据赋值给结果变量,方法的参数可选,并支持标签


{$cat home.category.list}
{$con home.news.content 1 {$a} world}
可以使用循环标签{list}展示获得的数据

函数标签

使用PHP函数,语法:{函数名 参数1 参数2 ...},参数可选,可以使用true/false/null(空值使用引号 ''),并支持标签


{date Y-m-d {$time}}