Get Smarty

Donate

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from Cheapglasses123.com and save up to 80%.

Where to buy prescription glasses? EyewearCanada.com is your best choice!

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Shop for 2018 World Cup Football Boots Online sale at guthjcc.com

Browse best 2018 world cup soccer cleats and shoes from SoccerAzteca.com

Advertisement

Chapter 1. Smarty是什么?

Smarty是一个PHP的模板引擎。更明确来说,它可以帮助开发者更好地 分离程序逻辑和页面显示。最好的例子,是当程序员和模板设计师是不同的两个角色的情况,而且 大部分时候都不是同一个人的情况。

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

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

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

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

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

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

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

  • 这意味着模板可以包含部分仅作为显示用的逻辑代码。 这些显示逻辑如:包含 其他模板,交替设置表格每行的颜色, 把变量转为 大写字母, 循环遍历数组并 显示出来。

  • Smarty也不是无论如何也强制分离业务和显示逻辑。毕竟Smarty 无法知道谁是谁,所以,会不会把业务逻辑放到模板也是看你怎么处理。

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

Smarty的一些特性:

  • 非常快速。

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

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

  • 仅当模板文件被修改后才会聪明地重新编译

  • 你可以很容易创建自己的函数变量修饰器,非常具有可扩展性。

  • 可配置的模板定界符语法{delimiter}, 你可以使用{$foo}, {{$foo}}, <!--{$foo}-->等等。

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

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

  • 内置缓存支持。

  • 任意的模板源。

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

  • 插件 架构。

Comments
No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 4 plus 5? (Are you human?)

Advertisement