当前位置: 首页 > 后端技术 > PHP

EasyTpl-简单快速的PHP模板引擎

时间:2023-03-30 06:07:23 PHP

EasyTpl-简单快速的PHP模板引擎??简单快速的PHP模板引擎。功能简单、轻巧且快速。无需学习成本,只需简单处理并转换为原生PHP语法兼容PHP原生语法并使用更简单的输出语法。例如:{{=$var}}{{$var}}{{echo$var}}支持所有控制语法。例如,if、elseif、else;为每个;为了;switch支持对数组值的链式访问。例如:{{$arr.0}}{{$map.name}}{{$map.user.name}}更安全。默认情况下,输出将通过htmlspecialchars自动处理,除非它被禁用或手动使用rawfiltering过滤器支持使用PHP内置函数作为过滤器。例如:{{$var|ucfirst}}支持添加自定义过滤器默认内置过滤器:upperlowernl支持添加自定义指令,提供自定义函数,支持在模板中添加注释。示例:{{#comments...#}}安装需要PHP8.0+composercomposerrequirephppkg/easytplQuickStartusePhpPkg\EasyTpl\EasyTemplate;$tplCode=<<<'CODE'我的名字是{{$name|strtoupper}},我的开发标签:{{foreach($tagsas$tag)}}-{{$tag}}{{endforeach}}CODE;$t=newEasyTemplate();$str=$t->renderString($tplCode,['name'=>'inhere','tags'=>['php','go','java'],]);回声$海峡;渲染输出:我的名字是INHERE,我的开发标签:-php-go-java更多使用说明语法和PHP原生模板一样,加入的特殊语法只是为了方便使用。EasyTemplate默认启用输出过滤,可用于渲染视图模板。TextTemplate关闭输出过滤,主要是文本处理、代码生成等配置设置使用PhpPkg\EasyTpl\EasyTemplate;$t=EasyTemplate::new(['tplDir'=>'path/to/templates','allowExt'=>['.php','.tpl'],]);//做点什么……更多设置:/**@varPhpPkg\EasyTpl\EasyTemplate$t*/$t->disableEchoFilter();$t->addFilter($name,$filterFn);$t->addFilters([]);$t->addDirective($name,$handler);输出变量下面的语句可以用来打印出变量值{{$name}}{{=$name}}{{echo$name}}更多:{{$name?:'inhere'}}{{$年龄>20岁?'20+':'<=20'}}默认情况下会通过htmlspecialchars自动处理输出,除非设置为disable或者手动使用rawfilter禁用输出过滤$t->disableEchoFilter()template禁用输出在{{$name|中过滤raw}}快速获取数组值可以使用.快速访问数组值。还可以使用原始书写方式,简洁的书写方式会自动转换为原生书写方式。$arr=['val0','subKey'=>'val1',];在模板中使用:第一个值是:{{$arr.0}}//val0'subKey'值是:{{$arr.subKey}}//val1If语句块if语句:{{if($name!=='')}}嗨,我的名字是{{$name}}{{endif}}ifelse语句:嗨,我的名字是{{$name}}年龄是{{$age}},并且{{if($age>=20)}}age>=20.{{else}}age<20.{{endif}}if...elseif...else语句:嗨,我的名字是{{$name}}年龄是{{$age}},并且{{if($age>=50)}}age>=50.{{elseif($age>=20)}}age>=20.{{else}}age<20.{{endif}}For/Foreachblockforeach:tags:{{foreach($tagsas$tag)}}-{{$tag}}{{endforeach}}withkeys:tags:{{foreach($tagsas$index=>$tag)}}{{$index}}。{{$tag}}{{endforeach}}Template{{#和#}}包裹的内容将被忽略为注释。{{#comments...#}}{{$name}}//inheremultilines:{{#thiscommentsblock#}}{{$name}}//inhereusesfilterdefaultbuilt-infilter:upper-equivalent与strtoupperlower相同-与strtolowernl相同-附加换行符\n过滤器用法示例您可以在任何模板中使用过滤器。基本用法:{{'inhere'|ucfirst}}//在这里{{'inhere'|upper}}//INHERE链用法:{{'inhere'|首创|substr:0,2}}//在{{'1999-12-31'|date:'Y/m/d'}}//1999/12/31传递非静态值:{{$name|首创|substr:0,1}}{{$user['name']|首创|substr:0,1}}{{$userObj->名称|首创|substr:0,1}}{{$userObj->getName()|首创|substr:0,1}}传递变量作为过滤参数:{{$suffix='¥';}}{{'12.75'|add_suffix:$suffix}}//12.75¥自定义过滤器使用PhpPkg\EasyTpl\EasyTemplate;$tpl=EasyTemplate::new();//使用php内置函数$tpl->addFilter('upper','strtoupper');//添加多个$tpl->addFilters(['last3chars'=>function(string$str):string{returnsubstr($str,-3);},]);在模板中使用:{{$name='inhere';}}{{$name|上}}//INHERE{{$名称|last3chars}}//ere{{$name|最后3个字符|upper}}//ERE自定义指令你可以使用指令来实现一些特殊的逻辑。$tpl=EasyTemplate::new();$tpl->addDirective('include',function(string$body,string$name){/**将调用{@seeEasyTemplate::include()}*/return'$this->'.$name.$body;});在模板中使用:{{include('part/header.tpl',['title'=>'Myworld'])}}Github:https://github.com/phppkg/eas...??简单快速PHP模板引擎。功能简单、轻巧且快速。无需学习成本,只需简单处理并转换为原生PHP语法兼容PHP原生语法并使用更简单的输出语法。例如:{{=$var}}{{$var}}{{echo$var}}支持所有控制语法。例如,if、elseif、else;为每个;为了;switch支持对数组值的链式访问。例如:{{$arr.0}}{{$map.name}}{{$map.user.name}}更安全。默认情况下,输出将通过htmlspecialchars自动处理,除非它被禁用或手动使用rawfiltering过滤器支持使用PHP内置函数作为过滤器。例如:{{$var|ucfirst}}支持添加自定义过滤器默认内置过滤器:upperlowernl支持添加自定义指令,提供自定义函数,支持在模板中添加注释。示例:{{#comments...#}}安装需要PHP8.0+composercomposerrequirephppkg/easytplQuickStartusePhpPkg\EasyTpl\EasyTemplate;$tplCode=<<<'CODE'我的名字是{{$name|strtoupper}},我的开发标签:{{foreach($tagsas$tag)}}-{{$tag}}{{endforeach}}CODE;$t=newEasyTemplate();$str=$t->renderString($tplCode,['name'=>'inhere','tags'=>['php','go','java'],]);回声$海峡;渲染输出:我的名字是INHERE,我的开发标签:-php-go-java更多使用说明语法和PHP原生模板一样,加入的特殊语法只是为了方便使用。EasyTemplate默认启用输出过滤,可用于渲染视图模板。TextTemplate关闭输出过滤,主要是文本处理、代码生成等配置设置使用PhpPkg\EasyTpl\EasyTemplate;$t=EasyTemplate::new(['tplDir'=>'path/to/templates','allowExt'=>['.php','.tpl'],]);//做点什么……更多设置:/**@varPhpPkg\EasyTpl\EasyTemplate$t*/$t->disableEchoFilter();$t->addFilter($name,$filterFn);$t->addFilters([]);$t->addDirective($name,$handler);输出变量下面的语句可以用来打印出变量值{{$name}}{{=$name}}{{echo$name}}更多:{{$name?:'inhere'}}{{$年龄>20岁?'20+':'<=20'}}默认情况下会通过htmlspecialchars自动处理输出,除非设置为disable或者手动使用rawfilter禁用输出过滤$t->disableEchoFilter()template禁用输出在{{$name|中过滤raw}}快速获取数组值可以使用.快速访问数组值。还可以使用原始书写方式,简洁的书写方式会自动转换为原生书写方式。$arr=['val0','subKey'=>'val1',];在模板中使用:第一个值是:{{$arr.0}}//val0'subKey'值是:{{$arr.subKey}}//val1If语句块if语句:{{if($name!=='')}}嗨,我的名字是{{$name}}{{endif}}ifelse语句:嗨,我的名字是{{$name}}年龄是{{$age}},并且{{if($age>=20)}}age>=20.{{else}}age<20.{{endif}}if...elseif...else语句:嗨,我的名字是{{$name}}年龄是{{$age}},并且{{if($age>=50)}}age>=50.{{elseif($age>=20)}}age>=20.{{else}}age<20.{{endif}}For/Foreachblockforeach:tags:{{foreach($tagsas$tag)}}-{{$tag}}{{endforeach}}withkeys:tags:{{foreach($tagsas$index=>$tag)}}{{$index}}。{{$tag}}{{endforeach}}Template{{#和#}}包裹的内容将被忽略为注释。{{#comments...#}}{{$name}}//inheremultilines:{{#thiscommentsblock#}}{{$name}}//inhereusesfilterdefaultbuilt-infilter:upper-equivalent与strtoupperlower相同-与strtolowernl相同-附加换行符\n过滤器用法示例您可以在任何模板中使用过滤器。基本用法:{{'inhere'|ucfirst}}//在这里{{'inhere'|upper}}//INHERE链用法:{{'inhere'|首创|substr:0,2}}//在{{'1999-12-31'|date:'Y/m/d'}}//1999/12/31传递非静态值:{{$name|首创|substr:0,1}}{{$user['name']|首创|substr:0,1}}{{$userObj->名称|首创|substr:0,1}}{{$userObj->getName()|首创|substr:0,1}}传递变量作为过滤参数:{{$suffix='¥';}}{{'12.75'|add_suffix:$suffix}}//12.75¥自定义过滤器使用PhpPkg\EasyTpl\EasyTemplate;$tpl=EasyTemplate::new();//使用php内置函数$tpl->addFilter('upper','strtoupper');//添加多个$tpl->addFilters(['last3chars'=>function(string$str):string{returnsubstr($str,-3);},]);在模板中使用:{{$name='inhere';}}{{$name|上}}//INHERE{{$名称|last3chars}}//ere{{$name|最后3个字符|upper}}//ERE自定义指令你可以使用指令来实现一些特殊的逻辑。$tpl=EasyTemplate::new();$tpl->addDirective('include',function(string$body,string$name){/**将调用{@seeEasyTemplate::include()}*/return'$this->'.$name.$body;});在模板中使用:{{include('part/header.tpl',['title'=>'Myworld'])}}Github:https://github.com/phppkg/eas...