举个例子,现在你要制作一个页面来显示新闻内容。

    • 文章内有, $tagline, $author 和 等各部分内容, 这些内容没有包括它们如何被显示的信息。 程序将它们给Smarty。

    • 然后,模板设计师编辑模板,使用HTML标签和 模板标签,来对这些内容进行排版显示, 如表格、DIV、背景颜色、字体大小、样式表、SVG等等。

    • 当有一天,程序员需要改变文章数据内容的获取方式,也就是修改程序逻辑。 那么这个改变不会影响到模板设计师的工作,内容还是会传递到模板。

    • 同样的,如果模板设计师想要完全重新设计模板,也可以做到完全不需要修改程序逻辑。

    • 所以,程序员可以改变程序逻辑,而不需要调整模板页面; 模板设计师也可以修改模板,而不会打断程序逻辑。

    业务逻辑和显示逻辑分离,是Smarty的一个设计理念。

    • 同时,如果你希望在你的模板里没有任何的逻辑代码,你也可以把模板写成仅剩下文字和变量。

    Smarty的一些特性:

    • 非常快速。

    • 比PHP内嵌到HTML中的做法要有效率的多。

    • 无模板解析的开销,只编译一次。

    • 仅当模板文件被修改后才会聪明地。

    • 条件判断语句 {if}..{elseif}..{else}..{/if} 会直接使用PHP解析,所以{if…}后可以是简单或者较复杂的表达式。

    • 支持无限的, if等的嵌套。

    • 内置缓存支持。

    • 任意的源。

    • 模板继承可以轻松管理模板和内容。

    • 架构。