PhpWind打包体系

 

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中打包类库对相关的类库和缓存的文件空格,换行,等进行整理压缩使得文件变小,加载速度变快提升文件读取速度!