说到PHP的模板引擎,那可谓是很多。像Smarty、SmartTemplate、FastTemplate等等... 其中属Smarty功能最为强大。
不过呢,个人感觉它还有些欠缺的地方,例如表达式赋值,modifier只支持传递一个参数等。因此,在CMSPAD项目中我们开发了一套新的模板引擎,语法上大部分兼容Smarty,但提供更强大的函数引擎和表达式自动赋值。
下面我把一些范例写出来,看看能不能触发一下大家的创新思维:
1. 公用函数标签:<{@函数名称 [参数1 [参数2]]}>
2. 内置函数标签:在文本区域内的自动函数支持
3. 变量赋值:<{assign name=变量名 expr=表达式}>
4. 属性表达式:在某些系统支持的属性中可以提供表达式支持
由于提供了内置表达式支持,因此CMSPAD的模板引擎并不需要兼容Smarty的modifier语法。
整个系统的函数,我们分成了三个部分:公用函数、内置函数、标签函数,三个函数可以分开进行设置。公用和内置函数库,默认使用了系统的函数库,而用户可以自行定义或覆盖默认函数(例如支持中文的substr函数)以达到更理想的效果。所谓标签函数,就是类似于Smarty上的函数样式。与其不同的一点是,我们把switch函数给简化成下列样式:
目前,此库正在进行beta测试中。