★ 带编译功能的 PHPLIB Template 类,性能和速度都有提高 ★
时间:2006-12-18
来源:互联网
1.我将类中所有的所有英语注解都删除了,只留下了我所增加功能的中文注解,主要是方便阅读!
2.这次升级中只对类已有的成员函数进行了修改,接口没有变;添加了新的成员函数以使编译功能更
灵活,所以需要用到新功能的项目中只要升级该类,[★项目源程序不用做任何修改★]
3.升级后对类成员调用时,可以用 "__ROOT__" 表示网站的根目录即 $_SERVER["DOCUMENT_ROOT"] ,
如下例子所示!
4.本次升级的原理是向 SMARTY 学习的,采用的是数据缓冲功能,以空间换速度!和未升级版本相比,
在性能上和速度上有很大的提升!这些我在我的项目中有很大的体会!
[编译功能使用说明]
1.升级了类,想使用升级后的编译功能;项目中源程序不做任何修改的方法如下:
(1).将 "var $compile_switch = false;" 中 "false" 改为 "true" 以打开编译功能.
(2).在 "var $rapport_file = array();" 中加入编译时除了检查当前请求的PHP文件和模板
文件外还会关联到那些包含文件,这些文件主要是当前HTTP请求的PHP程序 include() 中可能
会修改的文件.[★如果没有可不用修改它★]格式如下:
var $rapport_file = array('__ROOT__/inc/function.php',
'__ROOT__/header.php');
(3).在你站点的根目录即 $_SERVER["DOCUMENT_ROOT"] 所对应的目录下新建目录 "compile_c"
并且有写入的权限(Unix类系统).也可以设置为其它目录,格式如下:
将 "var $compile_dir = '';" 改为 "var $compile_dir = '__ROOT__/tmp';"
(3).将 "var $last_time = 24;" 中 "24" 改为你所规定编译后文件的超时时间,以小时计算,可以是小数
[编译功能算法说明]
1.判断当前HTTP请求的PHP程序是否发送了 POST 数据(本页表单提交),如果有就重新编译.
2.判断编译后生成的文件是否存在,如果不存在就重新编译.
3.判断设置另外需要检查是否更新了的文件是否更新了(主要是包含文件),如果更新了就重新编译.
4.判断当前HTTP请求的PHP程序文件是否做了修改,如果做了修改就重新编译.
5.判断当前程序所用到的模板文件是否做了修改,如果做了修改就重新编译.
6.判断编译后文件的时间是否超过了指定的时间,如果超过了就重新编译.
7.自动支持 "__ROOT__" 表示网站的根目录是在 replace_root() 函数中.
8.编译功能的逻辑判断是在 set_file() 成员函数中,所以对于编译选项的设置调用必需在该函数之前.
9.编译生成缓冲文件是在 pparse() 与 p()成员函数中.
[该编译功能不足之处]
1.不能像 SMARTY 一样做到真正有编译,这只是一种缓冲机制而以.
2.不能到完全自动编译,必需要根据 set_rapport() 函数来实现,缺点是有时可能没有将有改变的文件
列入进来,不过这种情况肯定是你的项目的包含文件太多了,个人推荐在程序结构上加以整理!
结束语: 本人使用PHPLIB Template有近一年多了,暂时所有项目都用它,这个类也是用得很广的,通过这
次升级,性能与速度上有质的提高;个人觉得这个类在速度方面比 SMARTY 更快.暂进还没有发现
什么BUG;欢迎你在项目中使用了该类,如果发现了什么BUG请一定告诉我,也希望大家一同来改进
讨论,有改进也一定要告诉我啊!一起来支持开源吧!! ^_^ 使用时请保留作者信息!
具体请看在附件中的类原代码,有以上所有的说明:
作者: bzby555 发布时间: 2006-12-18

作者: leehui1983 发布时间: 2006-12-18
作者: dzjzmj 发布时间: 2006-12-18

作者: Nickboy 发布时间: 2006-12-18
作者: seraph 发布时间: 2006-12-18
作者: muqiao 发布时间: 2006-12-18
作者: leehui1983 发布时间: 2006-12-18



作者: kenus 发布时间: 2006-12-18
我顶
作者: luckysammo 发布时间: 2006-12-19
作者: bzby555 发布时间: 2006-12-19
作者: mikale 发布时间: 2006-12-20
所以不知小路你所说的问题主要是指那个方面?? 当然,我自己也不知道什么地方还可以改进, 还请赐教!!! 关注中...........
作者: bzby555 发布时间: 2006-12-21
作者: leehui1983 发布时间: 2006-12-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28