http://baike.baidu.com/link?url=HmXfdJBv3zpCdnZPeaSmZmqDBHlyTBnz9Rmb5it-jf1_NLHfaku6_i8ssUYbnaTQEBD4vARnPpKuC7UtrOmWQ_
PHP是一种HTML内嵌式的在服务器端执行的
脚本语言,因此大部分
PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。虽然经过
MVC设计模式能够把程序应用逻辑与网页呈现逻辑强制性分离,但也只是将应用程序的输入、处理和输出分开,网页呈现逻辑(视图)还会有
HTML代码和PHP程序强
耦合在一块儿。
-
中文名
-
php模板引擎
-
解 释
-
一种HTML脚本语言
若是你正在设计一个交互式的网站,你必定会关注两个主要的问题,就是界面美工和应用程序。在大多数的项目组中,开发一个Web程序都会出现这样的流程:计划文档提交以后,
界面设计者(美工)制做了网站的外观模型,而后把它交给后台程序员。程序员使用
PHP实现
程序逻辑,同时使用外观模型作成基本架构,而后工程被返回到HTML页面设计者继续完善。就这样工程可能在后台程序员和页面设计者之间来来回回好几回。因为后台程序员不喜欢干预任何有关HTML标签,同时也不须要美工们和PHP代码鬼混在一块儿。美工设计者只须要配置文件,动态区块和其余的界面部分,没必要要去接触那些错综复杂的PHP代码。所以,这时候有一个很好的模板支持就显得很重要了。
PHP是一种HTML内嵌式的在服务器端执行的
脚本语言,因此大部分PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。虽然经过
MVC设计模式能够把程序应用逻辑与网页呈现逻辑强制性分离,但也只是将应用程序的输入、处理和输出分开,网页呈现逻辑(视图)还会有
HTML代码和PHP程序强
耦合在一块儿。PHP脚本的编写者必须既是网页设计者,又是PHP开发者。但实际状况是,多数Web开发人员要么是精通网页设计,可以设计出漂亮的网页外观,可是编写的PHP代码很糟糕;要么仅熟悉PHP编程,可以写出健壮的PHP代码,可是设计的网页外观很难看。具有两种才能的开发人员不多见。
如今已经有不少解决方案,能够将网站的页面设计和PHP应用程序几乎彻底分离。这些解决方案称为"模板引擎",它们正在逐步消除因为缺少层次分离而带来的难题。模板引擎的目的,就是要达到上述提到的逻辑分离的功能。它能让程序开发者专一于资料的控制或是功能的达成;而网页设计师则可专一于网页排版,让网页看起来更具备专业感。所以,模化引擎很适合公司的Web开发团队使用,使每一个人都能发挥其专长。
模板引擎技术的核心比较简单。只要将美工页面(不包含任何的
PHP代码)指定为模板文件,并将这个模板文件中有活动的内容,如数据库输出、用户交互等部分,定义成使用特殊"定界符"包含的"变量",而后放在模板文件中相应的位置。当用户浏览时,由PHP脚本程序打开该模板文件,并将模板文件中定义的变量进行替换。这样,模板中的特殊变量被替换为不一样的动态内容时,就会输出须要的页面。
在Web开发中分离应用程序的业务逻辑和表现逻辑,是咱们使用模板引擎的主要目的。这是由于有如下两个重要缘由:
美工设计人员能够与应用程序开发人员独立工做,由于应用的表现和逻辑并不是密不可分地纠缠在一块儿。此外,由于大多数模板引擎使用的表现逻辑通常比应用程序所使用编程语言的语法更简单,因此,美工设计人员不须要为完成其工做而在程序语言上花费太多精力。
可使用一样的代码基于不一样目标生成数据,例如生成打印的数据、生成Web页面或生成电子数据表等。若是不使用模板引擎,则须要针对每种输出目标复制并修改代码,这会带来很是严重的代码冗余,极大地下降了可管理性。
目前,能够在
PHP中应用的而且比较成熟的模板有不少,例如
Smarty、
PHPLIB、IPB、
xingTemplate等几十种。使用这些经过PHP编写的模板引擎,可让你的代码脉络更加清晰,结构更加合理化。也可让网站的维护和更新变得更容易,创造一个更加良好的开发环境,让开发和设计工做更容易结合在一块儿。可是,对于一个
PHP程序员来讲,没有哪个PHP模板对他是最合适、最完美的。由于PHP模板就是大众化的东西,并非针对某我的开发的。若是能在对模板的特色、应用有清楚的认识基础上,充分认识到模板的优点劣势,就能够知道是否选择使用模板或选择使用哪一个模板。
smarty
smarty是一个基于
PHP开发的PHP模板引擎。它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工从新修改页面不会影响到程序的
程序逻辑,这在多人合做的项目中显的尤其重要。
Template Lite
Template Lite是一个很是快并且很小HTML模板引擎。该引擎支持
Smarty模板引擎所具备的大部分功能和过滤器。
TinyButStrong
TinyButStrong(TBS)是一个可让
PHP脚本和
HTML文件干净分离的PHP模板引擎。TBS设计成可使用任何可视化
HTML编辑器来编写TBS的HTML模板页。
XTemplate
XTemplate是一个适用于
PHP的模板引擎。它容许把
HTML代码与PHP代码分开存储。XTemplate包含了许多有用的功能好比嵌套的程序块,各类类型的插值变量。其代码很是简洁而且是最优化的。
Savant
Savant是一个强大但轻量级的
面向对象PHP模板引擎。不象其模板系统,
Savant默认没有把模板编译成
PHP,而是使用PHP自己来做为它的模板语言因此你不须要学习一套新的标记系统。Savant有一个面向对象的模板插件系统和输出过滤器,可让你快速为它新增新的行为。
phemplate
phemplate是一个简单并且快速的PHP模板引擎。它容许在模板中加入变量和一些动态程序块包括循环。该模板引擎可以能够实现表现与逻辑相分离,也就是说你能够从
PHP脚本中抽出全部HTML内容。设计人员能够随意更改HTML而不用担忧弄乱你的PHP脚本。
Dwoo
Dwoo是一个PHP5模板引擎。兼容
Smarty模板,它在Smarty语法的基础上彻底进行重写。支持经过
插件扩展其功能。
Sugar
Sugar是一个相似于
Smarty的模板引擎,拥有一个简洁和易于理解的语法。
Twig
Twig是一个灵活,快速,安全的
PHP模板语言。它将模板编译成通过优化的原始PHP代码。Twig拥有一个
砂箱模型来评估不可信的模板代码。Twig由一个灵活的
词法分析器和
语法分析器组成,可让开发人员定义本身的标签,过滤器并建立本身的DSL。
FXL Template
FXL Template是一个易于使用的模板引擎,提供了一个模板系统所拥有的全部基本功能。支持简单的text/
array分配,block和
嵌套的blocks。拥有良好的规则表达式和简单的模板语法,以实现尽量快的模板处理。
H2o
H2o是一个PHP模板引擎,它拥有django风格的漂亮模板标签。它大部分概念都源于Django模板。特性:拥有可读和天然的语法。复用模板
Inclusion和继承。国际化支持。各类
缓存支持。
ns-template
2010年大约5月份时,感觉到
DEDE标签主动调用数据理念适合CMS,因此开发了一些
Smarty自定义修改器和
自定义标签,可是在执行过程当中性能低下,开销以s计,这是没法容忍的。分析跟踪,受自定义标签实现的原理限制不可能快。因而在dz模板的基础上加入了很多
smarty语法以及自定义标签功能。经历了一年多线上运行和bug修复,而且弥补了DEDE标签多级
嵌套问题后,在较稳定的状况下释出该版本。
Blade
Blade是
Laravel框架下的一种简单又强大的模板引擎。Blade 很是快,由于仅使用了少许的
正则表达式来为你的模板编译成原始
PHP代码。不一样于控制器布局,Blade模板引擎由模板继承和模板片断驱动。全部的Blade模板文件必须使用Blade
.blade.php文件扩展名。