Example #1
0
 function _loadGatherCache($cacheName)
 {
     static $_cacheNames = null;
     $cacheName = strtolower($cacheName);
     if (!isset($_cacheNames[$cacheName])) {
         $filePath = R_P . "lib/gather/gathercache/" . $cacheName . ".cache.php";
         if (!is_file($filePath)) {
             return false;
         }
         # pack class start
         $className = 'GatherCache_' . $cacheName . '_Cache';
         $filePath = pwPack::classPath($filePath, $className);
         # pack class end
         require_once S::escapePath($filePath);
         #$className = 'GatherCache_' . $cacheName . '_Cache';
         if (!class_exists($className)) {
             return false;
         }
         $_cacheNames[$cacheName] =& new $className();
     }
     return $_cacheNames[$cacheName];
 }
Example #2
0
 function _loadClass($className, $dir = '', $isGetInstance = true, $classPrefix = 'PW_')
 {
     static $classes = array();
     $dir = PW_BaseLoader::_formatDir($dir);
     $classToken = $isGetInstance ? $className : $dir . $className;
     //避免重名
     if (isset($classes[$classToken])) {
         return $classes[$classToken];
     }
     $classes[$classToken] = true;
     //默认值
     $fileDir = R_P . $dir . strtolower($className) . '.class.php';
     if (!$isGetInstance) {
         return @(require_once S::escapePath($fileDir));
     }
     //未实例化的直接返回
     $class = $classPrefix . $className;
     if (!class_exists($class)) {
         # pack class start
         if ($GLOBALS['db_classfile_compress']) {
             $_directory = explode('/', $dir);
             if (isset($_directory[1]) && in_array($_directory[1], array('framework', 'gather', 'forum', 'job', 'rate', 'site', 'user', 'utility'))) {
                 $fileDir = pwPack::classPath($fileDir, $class);
             }
         }
         # pack class end
         if (file_exists($fileDir)) {
             require_once S::escapePath($fileDir);
         }
         if (!class_exists($class)) {
             //再次验证是否存在class
             $GLOBALS['className'] = $class;
             Showmsg('load_class_error');
         }
     }
     $classes[$classToken] =& new $class();
     //实例化
     return $classes[$classToken];
 }