CMSPAD中的模板引擎新特性,看看能否触发你的创新想法~

本文介绍了CMSPAD项目中的自定义模板引擎,该引擎在语法上与Smarty兼容,但提供了更强大的函数引擎和表达式自动赋值等功能。文中详细展示了模板引擎的使用示例,包括函数标签、内置函数支持、变量赋值及属性表达式。

说到PHP的模板引擎,那可谓是很多。像Smarty、SmartTemplate、FastTemplate等等... 其中属Smarty功能最为强大。

不过呢,个人感觉它还有些欠缺的地方,例如表达式赋值,modifier只支持传递一个参数等。因此,在CMSPAD项目中我们开发了一套新的模板引擎,语法上大部分兼容Smarty,但提供更强大的函数引擎和表达式自动赋值。

下面我把一些范例写出来,看看能不能触发一下大家的创新思维:

1. 公用函数标签:<{@函数名称 [参数1 [参数2]]}>

模板代码
  1. <{@strcmp "123456789" "12345678"}>  
  2. <{@strtoupper $hello}>  

2. 内置函数标签:在文本区域内的自动函数支持

模板代码
  1. <{@strtoupper "$hello strlen($hello) strcmp($hello,'world')"}>  
  2. <{if $hello=strtolower('WORLD')}>Is world<{/if}>  
  3. <{if strlen($hello) + 3 = 5}>$Hello var length is greater than 5<{/if}>  

3. 变量赋值:<{assign name=变量名 expr=表达式}>

模板代码
  1. <{assign name=hello expr=strlen($hello)+5}>  
  2. <{assign name=hello expr="strlen($hello) + 5" }>  

4. 属性表达式:在某些系统支持的属性中可以提供表达式支持

模板代码
  1. <{for start='$start + 3' stop=count($ints) step=2 value=i}><{$i}>.<{/for}>  

由于提供了内置表达式支持,因此CMSPAD的模板引擎并不需要兼容Smarty的modifier语法。

整个系统的函数,我们分成了三个部分:公用函数、内置函数、标签函数,三个函数可以分开进行设置。公用和内置函数库,默认使用了系统的函数库,而用户可以自行定义或覆盖默认函数(例如支持中文的substr函数)以达到更理想的效果。所谓标签函数,就是类似于Smarty上的函数样式。与其不同的一点是,我们把switch函数给简化成下列样式:

模板代码
  1. <{switch $hello}>  
  2.   <{case "hello"}>  
  3.     This is Hello   
  4.   <{case 'world'}>  
  5.     This is World   
  6.   <{case}>  
  7.     This is Default   
  8. <{/switch}>  

目前,此库正在进行beta测试中。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值