现在简短的说一下什么是smarty不做的。smarty不尝试将逻辑完全和模板分开。如果逻辑程序严格的用于页面表现,那么它在模板里不会出现问题。有个建议:让应用程序逻辑远离模板, 页面表现逻辑远离应用程序逻辑。这将在以后使内容更容易管理,程序更容易升级。
Smarty的特点之一是"模板编译"。意思是Smarty读取模板文件然后用他们创建php脚本。这些脚本创建以后将被执行。因此并没有花费模板文件的语法解析,同时每个模板可以享受到诸如Zend加速器(http://www.zend.com) 或者PHP加速器(http://www.php-accelerator.co.uk)。这样的php编译器高速缓存解决方案。
Smaty的一些特点:
-
非常非常的快!
-
用php分析器干这个苦差事是有效的
-
不需要多余的模板语法解析,仅仅是编译一次
-
仅对修改过的模板文件进行重新编译
-
可以编辑'自定义函数'和自定义'变量',因此这种模板语言完全可以扩展
-
可以自行设置模板定界符,所以你可以使用{}, {{}}, <!--{}-->, 等等
-
诸如 if/elseif/else/endif 语句可以被传递到php语法解析器,所以 {if ...} 表达式是简单的或者是复合的,随你喜欢啦
-
如果允许的话,section之间可以无限嵌套
-
引擎是可以定制的.可以内嵌php代码到你的模板文件中,虽然这可能并不需要(不推荐)
-
内建缓存支持
-
独立模板文件
-
可自定义缓存处理函数
-
插件体系结构