Smarty(一)

1、 Smarty的由来

Smarty的主要设计理念是:干净的分离显示逻辑和程序代码,在PHP为后端状况下,Smarty模板应用在前端,加强PHP的先后端交互性能,而且给先后端分离状况下程序员的开发、部署带来方便,语法简单易懂,即便不懂PHP也彻底能够掌握Smarty。前端

有人会说,为何不直接用PHP进行前台渲染?
  • PHP与模板分离的重要性程序员

    • 语法:模板语法一般是更符合HTML标记的语义。PHP语法能够在程序代码中运做的很好, 但如何混合在HTML中就否则。Smarty简单的{标签}语法是为了表达显示逻辑而设计的。 Smarty让你的模板更专一于页面显示,而不用关注太多“代码”。 这可让模板开发得更快速,维护更容易。 学习Smarty的语法不须要懂得PHP的相关知识,程序员或非程序员都能很快上手。后端

    • 松耦合:当PHP代码混合在模板中,那将没法约束任意的逻辑代码被写到模板上。 Smarty分隔了模板和PHP,控制了页面显示和业务逻辑的分离。 Smarty还有安全特性,能够令模板源码有强制的约束。缓存

  • 页面设计者和PHP安全

    • 一个一般的问题是:“页面设计者既然要学一门语法,为何不学PHP?”。固然页面设计者能够 学习PHP,并且他们可能已经很是熟悉PHP。问题并不是是他们是否有能力学习PHP,问题在于HTML混合PHP的状况,若是设计者使用PHP,那么就很容易会将一些不属于模板的PHP代码写到模板上。 (正如当他们只须要一把小刀但你塞给他们一把瑞士军刀同样)。 你能够教导他们程序设计的规则,但这多是他们不真正须要学习的事情(他们不是开发者)。 并且PHP手册也是很是繁多难以筛选出你须要的部分进行教导, 就像你给了车子的买主一本汽车工厂里面的装配手册,而不是汽车的操做手册同样。 Smarty恰到好处地给予了设计者须要的工具,而提供了开发者更好地控制这些工具的方法。 这种简单的标签语法也是很是受到设计者的欢迎,帮助了设计者流水式地组织管理模板。框架

2、Smarty是什么

一句话归纳:Smarty是一个PHP的模板引擎前后端分离

更准确的说:Smarty能够更好的帮助开发者分离程序逻辑和页面显示,如在先后端分离的项目中,先后端为不一样开发人员,那么Smarty即可以作到在互相不影响的状况下完美的实现先后台的协做。而且业务逻辑和显示逻辑分离,是Smarty的一个设计理念。

2、Smart的一些特性

  • 很是快速。函数

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

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

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

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

  • 你能够很容易建立本身的函数和变量修饰器,很是具备可扩展性。

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

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

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

  • 内置缓存支持。

  • 任意的模板源。

  • 模板继承 能够轻松管理模板和内容。

3、Smarty是怎么工做的?

在底层,Smarty“编译”(简单地复制和转换)模板为PHP代码。这在每一个模板第一次调用时发生,而后编译后的代码将被一直使用。Smarty处理地很是的好,因此模板设计师仅编辑模板而不须要关注编译的事情。这方法保持了模板的易维护,同时也保证了运行时是PHP代码的方式运行,这样PHP代码就能够经过相似APC等OP-CODE缓存器来加速了。

4、Smarty不是什么

Smarty不是一个应用开发框架。Smarty不是一个MVC。Smarty不像Zend Framework, CodeIgniter, PHPCake, 或者其余的PHP应用开发框架。

Smarty是一个模板引擎,在应用程序中,看成V层(视图层)的组件来使用。 Smarty能够很轻易链接到其余的视图引擎中。 和其余的软件技术同样,Smarty也有着学习曲线。 Smarty不必定保证良好的程序设计或者达成显示分离的目的,这还得须要开发者和模板设计师的努力。

相关文章
相关标签/搜索