发新话题
打印

[FleaPHP 插件 ] 改进过的 TemplateLite

[FleaPHP 插件 ] 改进过的 TemplateLite

改进过的 TemplateLite

TemplateLite 介绍

1、几乎与 Smarty 完全兼容(有些 Smarty 的特性不支持,不过这些特性也很少人用);
2、体积小一半,因此载入速度也更快;
3、结构更模块化,运行时载入的文件更少。

我最近做的项目就用的 TemplateLite,感觉非常不错。Smarty 模版拿过来直接就用,根本不需要修改。

在 FleaPHP 1.0.70 中,专门提供了一个 SmartyHelper 类,用于增强 Smarty。这个类也同时适用于 TemplateLite。

对 TemplateLite 的改进

基于 TemplateLite 2.10 修改,主要增强了 include 的功能。

默认情况下,{ include file="header.html" } 会导致编译后的模版文件在显示时用 <?php include() ?> 来载入文件。

假如你的模版中用到了多个 { include },那么最终编译后的模版文件显示时会载入多个文件。

例子:
复制内容到剪贴板
代码:
{ include file="header.html" }
{ include file="menubar.html" }

// BODY

{ include file="footer.html" }
最终编译后的模版可能是:
复制内容到剪贴板
代码:
<?php include('c_header.php'); ?>
<?php include('c_menubar.php'); ?>

// BODY

<?php include('c_footer.php'); ?>
也就是说为了显示一个页面,需要载入四个编译后的模版文件。

对于 PHP 来数,include 太多的文件会导致性能显著下降,所以我对 include 进行了改进,尽量减少编译后的模版需要载入的文件数量。

新的用法:
复制内容到剪贴板
代码:
{ include file="header.html" import=true }
{ include file="menubar.html" import=true }

// BODY

{ include file="footer.html" import=true }
这时会把 header.html 等三个模版文件的内容嵌入到编译后的模板文件中,因此在显示编译后的模版文件时就减少了三次 <?php include ?> 操作。

我目前正在做的一个应用中,这样优化后,可以少载入近10个文件。用 apache bench 测试,性能有明显提高。


除了增强 include,还有一两处小错误,也修正了。
附件: 您所在的用户组无法下载或查看附件
一個偽裝成白癡的天纔!

TOP

好文章!

这么好的文章,怎么没人顶呢!!学习了..楼主真是太好人了.

TOP

发新话题