1. 高效率
因为程序中分析变量、区块时没有采用正规表达式去做,而采用PHP内置字符串
处理函数来做,所以效率可能会稍高于同类产品
2. 易用性
使用此类只需简单的 创建类实例 -> 添加文件 -> 设置变量/区块 -> [如果有区块则解析]
-> 解析文件 就可以完成. 采用常用的命名方式, 提供通俗易懂的API接口方法.
3. 多级区块处理
通过程序的多级区块处理功能可以实现很多复杂的效果, 可以进行无限层次的套嵌(机器性能允许)
4. 可处理多种来源的模板
模板不一定要做成文件, 可以是来自数据库或其它来源.
$str = read_template_string();
$tpl->set_string(@#handle1@#, $str);
5. 变量可定制性
模板中的标识符是可以自行调整的.
如: 将简单变量的标识符定制为 "{/var/}", 只需如下调用:
$tpl->varBegin = @#{/@#;
$tpl->varEnd = @#/}@#;
将区块的定义设置成: "<!-- name -->content<!-- /name -->", 则只需:
$tpl->blockStartBegin = @#<!-- @#;
$tpl->blockStartEnd = @# -->@#;
$tpl->blockEndBegin = @#<!-- /@#;
$tpl->blockEndEnd = @# -->@#;
这样使得本类可以兼容同类产品,如PHPLIB的template、FastTemplate、Smart等.
pfcTemplate说明
我没有在类中加入缓存的功能, 我认为 Smart的缓存实质上还是要用PHP解析的。对于更新快的网站,不适合用SMART
做是大家公认的。但对于更新要求不是很多的网站,用Smart 其实不如在程序中加入生成 html文件的功能。WEB服务器处理
HTML的速度是远比PHP快的。
如果你觉得在解析区块时要加上是否为最好一行的参数不方便, 可修改本类, 在输出时清除最后一个块定义。
但是这样做的结果会比现在的慢一点点。 看你项目的需要折衷吧!
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/