Phpwind论坛打包体系:主要是为了提升网站负载能力,减少磁盘I/O操作
所开发出来的功能.主要分为论坛类库文件压缩和缓存文件压缩2大类别下面分别解介绍这2种功能的使用方法及如何代码来执行压缩:
1,论坛类库文件压缩:
a)论坛后台开启类库文件压缩:全局à安全优化à选中如下
即可开启类库压缩和缓存文件
b)论坛处理类库压缩的文件是在/require/common.php 文件中的class pwPack { }类下面分析详细分析改类的代码执行情况:
class pwPack {
/*
* 通用缓存文件获取
*/
function cachePath($filePath)
{
//如果后台缓存文件压缩打包开关关闭或该脚本不属于index,read,thread页面,则返回实际路径。
if( !$GLOBALS['db_cachefile_compress'] || !in_array
( SCR, array ('index', 'read', 'thread' ) ) ){
return $filePath;
}
$_packService = pwPack::getPackService (); //加载打包服务类
return $_packService->loadCachePath ( $filePath );//执行加载缓存文件路径函数
}
/*
* 通用类库文件获取
*/
function classPath($filePath,
$className) {
//如果后台类库文件压缩打包开关关闭或该脚本不属于index,read,thread页面,则返回实际路径。
if( !$GLOBALS['db_classfile_compress'] || !in_array
( SCR, array ('index', 'read', 'thread' ) ) ){
return $filePath;
}
static $_packClassFile = null; //定义变量为静态
if (! isset ( $_packClassFile
)) { //判断变量是否为空值
$_packClassFile = D_P . 'data/package/pack.class.' . SCR . '.php'; //打包好的类文件路径
if (is_file ( $_packClassFile )) {//判断类库文件是否正常
(! class_exists ( 'BaseDB' )) && require_once (R_P . 'lib/base/basedb.php');//包含数据库基类
require_once S::escapePath
( $_packClassFile );//路径转换过滤
}
}
if ($_packClassFile
&& class_exists ( $className
)) {
return R_P . 'require/returns.php'; //文件打包服务,虚拟文件路径构造
}
return $filePath;
}
/*
* 通用类库文件压缩
*/
function files() {
if( !in_array ( SCR, array ('index', 'read', 'thread' ) ) ){
return false;
}
$_packService = pwPack::getPackService ();
if( $GLOBALS['db_cachefile_compress'] ){ //判断网站后台缓存文件压缩是否打开
$_packService->packCacheFiles
();//加载打包缓存文件方法
}
return true;
}
/*
* 获取打包服务
*/
function getPackService() {
static $packService = null;
if (! isset ( $packService )) {
require_once R_P.'require/packservice.php';
$packService = new PW_packService ();//实例话文件打包/压缩类库
}
return $packService;
}
}
c)PW论坛可以简单的通过后台开启类库和缓存文件的压缩服务。!就有通过common.php中打包类库对相关的类库和缓存的文件空格,换行,等进行整理压缩使得文件变小,加载速度变快提升文件读取速度!