快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

一个强大的PHP缓存类(5)


        if (is_array($this->cache_params)){
            $this->cache_type = 'memcache';
            $this->cache_external = new Memcache;
            foreach ($this->cache_params as $server) {
                $server['port'] = isset($server['port']) ? (int) $server['port'] : ini_get('memcache.default_port');
                $server['persistent'] = isset($server['persistent']) ? (bool) $server['persistent'] : true;
                $this->cache_external->addServer($server['host'], $server['port'], $server['persistent']);
            }
        }
        else $this->cacheError('memcache needs an array, example:
                    wrapperCache::GetInstance(\'memcache\',30,array(array(\'host\'=>\'localhost\')));');
    }
    
    private function init_filecache(){//get instance of the filecache class
        $this->cache_type = 'filecache';
        $this->cache_external = fileCache::GetInstance($this->cache_expire,$this->cache_params);
    }
    
    public function getAvailableCache($return_format='html'){//returns the available cache
        $avCaches   = array();
        $avCaches[] = array('eaccelerator',function_exists('eaccelerator_get'));                                      
        $avCaches[] = array('apc',function_exists('apc_fetch')) ;                                    
        $avCaches[] = array('xcache',function_exists('xcache_get'));                                       
        $avCaches[] = array('memcache',class_exists('Memcache'));
        $avCaches[] = array('fileCache',class_exists('fileCache'));
        
        if ($return_format=='html'){
            $ret='<ul>';
            foreach ($avCaches as $c){
                $ret.='<li>'.$c[0].' - ';
                if ($c[1]) $ret.='Found/Compatible';
                else $ret.='Not Found/Incompatible';
                $ret.='</ll>';
            }
            return $ret.'</ul>';
        }
        else return $avCaches; 
    }
    
    private function cacheError($msg){//triggers error
        trigger_error('<br /><b>wrapperCache error</b>: '.$msg.
                    '<br />If you want you can try with \'auto\' for auto select a compatible cache.
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论