##**模版引擎**
**(以下第一个---->理解为变量未缓存编译结果,第二个为缓存后结果)**
**(配置以默认为准)**
###*模版配置*
* * * * *
$template_config = [
// 模板引擎标签开始标记
'left_delim' => '<{',
// 模板引擎标签结束标记
'right_delim' => '}>',
];
###*方法*
* * * * *
msqphpcoretemplateTemplate::commpile(string $content, array $data = [], array $language = []) : string
###*注意事项*
* * * * *
+ 左标签后禁止带有空格,左标签最好正常闭合,不然会有未知问题
> <{ a错误
> <{$a } 错误,未闭合
> <{a}> 正确
+ 右标签前可有空格
> a }>允许
+ 如果可输入空格,则一般支持多个空格
+ foreach等可以省略部分空格,但不推荐
> <{foreach $array as $key=>$val}>
> <{if $a===$b}>
+ 推荐左标签: <{ , 右: }> ,暂时不与html或css或js冲突
+ 数据缓存为真实缓存
>相当于将所有指定缓存数据所参与的所有语句(if,foreach等等)进行预编译
>使得编译后内容展示的时候不需要缓存数据(半成品)
+ 支持标签嵌套,但不推荐
###*变量赋值:*
* * * * *
$a = 'value';
//模版内容 ----> 变量不缓存----> 变量缓存
<{$a}> ----> ----> value
###*数组赋值:*
* * * * *
支持php数组写法和以.分割两种写法,无限维数
$a = ['name'=>'user','pass'=>test',0=>'a'];
<{$a.name}> ----> ----> user
<{$a['name']}> ----> ----> user
<{$a.0}>----> ----> a
<{$a[0]}> ----> ----> a
###*引入文件*
* * * * *
引入文件后按模版引擎解析,文件不存在报错
<{include file_path}>
<{include ......../resources/templates/home/user/top.tpl}>
###*语言*
* * * * *
**不存在抛出异常**
**解析时不分语言,在传参时区分**
$lang = [
'username' => '用户名'
];
$lang_english = [
'username' => 'username'
];
<{language.username}> = <{lang.username}>
中----> '用户名'
英----> username
###*常量*
* * * * *
**不存在抛出异常**
**直接替换为对应值**
<{cont.usernam}>
<{constant.usernam}>
###*foreach:*
* * * * *
支持写法:
<{foreach $array as $key => $value}>
<{foreach $array as $value}>
<{endforeach}>
<{/endforeach}>
例:
$arr = [1,2,3,4,5,6,7,8];
<{foreach $arr as $k => $v}>
<{$k}>:<{$v}>.
<{endforeach}>
---->
:.
---->
0:11:22:33:44:55:66:77:8
###*if*
* * * * *
支持写法
//比较符支持:===,!==,==,!=,>,<,>=,<=,<>,
//变量比较固定值,支持数字,字符串,布尔
<{if $a == 'string'}>
<{if $b === 0}>
//两个变量比较
<{if $a === $b}>
<{elseif ....同上}>
<{else}>
<{endif}>
<{/endif}>
例:
$a = true;
<{if $a === true}>
成功
<{endif}>
---->
成功
---->
成功
###*例*
//编译后----------------------------------------------------------



