目录
mint是一个编译型的模板引擎,是I-F中重要的核心模块。
不同的人们对“编译”有着不同的理解,在PHP模板引擎世界里,我们常把那些在第一次运行时就把模板分析结果存储、并在以后无需再次分析就可以重用的模板引擎称之为“编译型”模板引擎。典型地,PHPLib Template就不是编译型的,因为我们每次调用模板的时候,都需要动态地分析模板并把其中的块(block)和变量(var)替换掉,而Smarty就是编译型的,它只在第一次运行时就可以将模板分析为一组PHP程序文件,以后再调用模板时,它会自动执行编译后的PHP程序文件,而不是再次分析模板。
编译型模板引擎由于避免了多次重复分析模板,所以相对于非编译型的要快很多,而且由于运行时不需要大量替换,也节省了系统资源(CPU和IO)。
mint也是编译型的,即是说它也是在第一次运行后,就生成和模板对应的编译后的PHP程序,以后无需再次分析模板结构,所以它的速度是相当快的。
mint有以下优点
它是编译型的,速度相当快
它的容错能力强,相对于Smarty来说,mint有更强大的语法分析功能,所以总能准确的报告错误信息以及错误位置
扩展性强,任何人都可以很方便、简单地添加新的组件和修饰
清晰而易读,mint使用节点属性定义组件,而不是写入逻辑代码,如在Smarty中可能是
<html>
<head>
<title>hello,world</title>
</head>
<body>
hello,world! model is
<ul>
{foreach key=k item=v from=$model}
<li>key is {$k} and value is {$v}</li>
{/foreach}
</ul>
</body>
</html>
而在mint里就是
<html>
<head>
<title>hello,world</title>
</head>
<body>
hello,world! model is
<ul com="@foreach" x-data-set="$model" x-key="$k" x-value="$v">
<li>key is {$k} and value is {$v}</li>
</ul>
</body>
</html>
相对于Smarty,mint的语法更加自然,至少模板编辑人员(designer)会认同这一点。在mint设计之处,我们就认定要在模板里限制程序员写与逻辑相关的代码,保证模板清晰而易读。
易于配置,目前需要配置的只有简单的几个选项。