要说到优秀的PHP模板引擎,PHPer响应最多的一定是Smarty,它使用自己的模板语言,所以需要将模板“编译”成PHP。
Savant也是面向对象的PHP模板引擎,但它使用PHP本身来作为它的模板语言,不需要“编译”,代码量更少、执行速度更快。Savant只包含了模板引擎的最基本功能(如数据格式化功能),但它有一个面向对象的模板插件系统和输出过滤器,可以让你快速为它新增新的行为。我想,这是Cal Henderson在《构建可扩展的Web站点》一书中推荐Savant的理由。
最新版的是Savant3,其使用及其简单、清晰,使用Demo见:http://phpsavant.com/docs/,API见:http://phpsavant.com/api/Savant3/。
Savant3的文件目录结构如下:
Savant3.php //包含Savant3类
Savant3
resources //此文件夹存放插件和过滤器
Savant3_Filter_trimwhitespace.php //trimwhitespace过滤器,其类Savant3_Filter_trimwhitespace继承了Savant3_Filter
Savant3_Plugin_ahref.php //ahref插件,其类Savant3_Plugin_ahref继承了Savant3_Plugin,下同
Savant3_Plugin_date.php //date插件
Savant3_Plugin_htmlAttribs.php //htmlAttribs插件
Savant3_Plugin_image.php //image插件
Error.php //包含错误类Savant3_Error
Exception.php //包含异常类Savant3_Exception
Filter.php //包含抽象过滤器类Savant3_Filter,规定了编写“官方”过滤器须要遵循的接口。但函数或不是Savant3_Filter的子类方法也可以作为过滤器。
Plugin.php //包含抽象插件类Savant3_Plugin,规定了编写插件须要遵循的接口






