/** * Returns minify cache object * * @return object */ function _get_cache() { static $cache = array(); if (!isset($cache[0])) { switch ($this->_config->get_string('minify.engine')) { case 'memcached': $config = array('blog_id' => Util_Environment::blog_id(), 'instance_id' => Util_Environment::instance_id(), 'host' => Util_Environment::host(), 'module' => 'minify', 'servers' => $this->_config->get_array('minify.memcached.servers'), 'persistent' => $this->_config->get_boolean('minify.memcached.persistent'), 'aws_autodiscovery' => $this->_config->get_boolean('minify.memcached.aws_autodiscovery'), 'username' => $this->_config->get_boolean('minify.memcached.username'), 'password' => $this->_config->get_boolean('minify.memcached.password')); if (class_exists('Memcached')) { $w3_cache = new Cache_Memcached($config); } else { if (class_exists('Memcache')) { $w3_cache = new Cache_Memcache($config); } } $cache[0] = new \Minify_Cache_W3TCDerived($w3_cache); break; case 'redis': $config = array('blog_id' => Util_Environment::blog_id(), 'instance_id' => Util_Environment::instance_id(), 'host' => Util_Environment::host(), 'module' => 'minify', 'servers' => $this->_config->get_array('minify.redis.servers'), 'persistent' => $this->_config->get_boolean('minify.redis.persistent'), 'dbid' => $this->_config->get_boolean('minify.redis.dbid'), 'password' => $this->_config->get_boolean('minify.redis.password')); if (class_exists('Memcached')) { $w3_cache = new Cache_Memcached($config); } else { if (class_exists('Memcache')) { $w3_cache = new Cache_Memcache($config); } } $cache[0] = new \Minify_Cache_W3TCDerived($w3_cache); break; case 'apc': $config = array('blog_id' => Util_Environment::blog_id(), 'instance_id' => Util_Environment::instance_id(), 'host' => Util_Environment::host(), 'module' => 'minify'); if (function_exists('apcu_store')) { $w3_cache = new Cache_Apcu($config); } else { if (function_exists('apc_store')) { $w3_cache = new Cache_Apc($config); } } $cache[0] = new \Minify_Cache_W3TCDerived($w3_cache); break; case 'eaccelerator': $config = array('blog_id' => Util_Environment::blog_id(), 'instance_id' => Util_Environment::instance_id(), 'host' => Util_Environment::host(), 'module' => 'minify'); $w3_cache = new Cache_Eaccelerator($config); $cache[0] = new \Minify_Cache_W3TCDerived($w3_cache); break; case 'xcache': $config = array('blog_id' => Util_Environment::blog_id(), 'instance_id' => Util_Environment::instance_id(), 'host' => Util_Environment::host(), 'module' => 'minify'); $w3_cache = new Cache_Xcache($config); $cache[0] = new \Minify_Cache_W3TCDerived($w3_cache); break; case 'wincache': $config = array('blog_id' => Util_Environment::blog_id(), 'instance_id' => Util_Environment::instance_id(), 'host' => Util_Environment::host(), 'module' => 'minify'); $w3_cache = new Cache_Wincache($config); $cache[0] = new \Minify_Cache_W3TCDerived($w3_cache); break; case 'file': default: $cache[0] = new \Minify_Cache_File(Util_Environment::cache_blog_minify_dir(), array('.htaccess', 'index.php', '*.old'), $this->_config->get_boolean('minify.file.locking'), $this->_config->get_integer('timelimit.cache_flush'), Util_Environment::blog_id() == 0 ? W3TC_CACHE_MINIFY_DIR : null); break; } } return $cache[0]; }
/** * Returns cache object * * @return W3_Cache_Base */ function _get_cache() { static $cache = array(); if (!isset($cache[0])) { $engine = $this->_config->get_string('dbcache.engine'); switch ($engine) { case 'memcached': $engineConfig = array('servers' => $this->_config->get_array('dbcache.memcached.servers'), 'persistent' => $this->_config->get_boolean('dbcache.memcached.persistent'), 'aws_autodiscovery' => $this->_config->get_boolean('dbcache.memcached.aws_autodiscovery'), 'username' => $this->_config->get_boolean('dbcache.memcached.username'), 'password' => $this->_config->get_boolean('dbcache.memcached.password')); break; case 'redis': $engineConfig = array('servers' => $this->_config->get_array('dbcache.redis.servers'), 'persistent' => $this->_config->get_boolean('dbcache.redis.persistent'), 'dbid' => $this->_config->get_boolean('dbcache.redis.dbid'), 'password' => $this->_config->get_boolean('dbcache.redis.password')); break; case 'file': $engineConfig = array('use_wp_hash' => true, 'section' => 'db', 'locking' => $this->_config->get_boolean('dbcache.file.locking'), 'flush_timelimit' => $this->_config->get_integer('timelimit.cache_flush')); break; default: $engineConfig = array(); } $engineConfig['module'] = 'dbcache'; $engineConfig['host'] = Util_Environment::host(); $engineConfig['instance_id'] = Util_Environment::instance_id(); $cache[0] = Cache::instance($engine, $engineConfig); } return $cache[0]; }
/** * Returns cache object * * @param int|null $blog_id * @param string $group * @return W3_Cache_Base */ function _get_cache($blog_id = null, $group = '') { static $cache = array(); if (is_null($blog_id) && !in_array($group, $this->global_groups)) { $blog_id = $this->_blog_id; } elseif (is_null($blog_id)) { $blog_id = 0; } if (!isset($cache[$blog_id])) { $engine = $this->_config->get_string('objectcache.engine'); switch ($engine) { case 'memcached': $engineConfig = array('servers' => $this->_config->get_array('objectcache.memcached.servers'), 'persistent' => $this->_config->get_boolean('objectcache.memcached.persistent'), 'aws_autodiscovery' => $this->_config->get_boolean('objectcache.memcached.aws_autodiscovery'), 'username' => $this->_config->get_boolean('objectcache.memcached.username'), 'password' => $this->_config->get_boolean('objectcache.memcached.password')); break; case 'redis': $engineConfig = array('servers' => $this->_config->get_array('objectcache.redis.servers'), 'persistent' => $this->_config->get_boolean('objectcache.redis.persistent'), 'dbid' => $this->_config->get_boolean('objectcache.redis.dbid'), 'password' => $this->_config->get_boolean('objectcache.redis.password')); break; case 'file': $engineConfig = array('section' => 'object', 'locking' => $this->_config->get_boolean('objectcache.file.locking'), 'flush_timelimit' => $this->_config->get_integer('timelimit.cache_flush')); break; default: $engineConfig = array(); } $engineConfig['blog_id'] = $blog_id; $engineConfig['module'] = 'object'; $engineConfig['host'] = Util_Environment::host(); $engineConfig['instance_id'] = Util_Environment::instance_id(); $cache[$blog_id] = Cache::instance($engine, $engineConfig); } return $cache[$blog_id]; }
/** * Returns cache object * * @param null $blog_id * @param string $group * @return W3_Cache_Base */ function _get_cache($global = false) { static $cache = array(); if (!$global) { $blog_id = $this->_blog_id; } else { $blog_id = 0; } if (!isset($cache[$blog_id])) { $engine = $this->_config->get_string(array('fragmentcache', 'engine')); switch ($engine) { case 'memcached': $engineConfig = array('servers' => $this->_config->get_array(array('fragmentcache', 'memcached.servers')), 'persistent' => $this->_config->get_boolean(array('fragmentcache', 'memcached.persistent')), 'aws_autodiscovery' => $this->_config->get_boolean(array('fragmentcache', 'memcached.aws_autodiscovery')), 'username' => $this->_config->get_boolean(array('fragmentcache', 'memcached.username')), 'password' => $this->_config->get_boolean(array('fragmentcache', 'memcached.password'))); break; case 'redis': $engineConfig = array('servers' => $this->_config->get_array(array('fragmentcache', 'redis.servers')), 'persistent' => $this->_config->get_boolean(array('fragmentcache', 'redis.persistent')), 'dbid' => $this->_config->get_boolean(array('fragmentcache', 'redis.dbid')), 'password' => $this->_config->get_boolean(array('fragmentcache', 'redis.password'))); break; case 'file': $engineConfig = array('section' => 'fragment', 'locking' => $this->_config->get_boolean(array('fragmentcache', 'file.locking')), 'flush_timelimit' => $this->_config->get_integer('timelimit.cache_flush')); break; default: $engineConfig = array(); } $engineConfig['blog_id'] = $blog_id; $engineConfig['module'] = 'fragmentcache'; $engineConfig['host'] = Util_Environment::host(); $engineConfig['instance_id'] = Util_Environment::instance_id(); $cache[$blog_id] = Cache::instance($engine, $engineConfig); } return $cache[$blog_id]; }
/** * Returns cache object * * @return W3_Cache_Base */ function _get_cache() { static $cache = null; if (is_null($cache)) { $engine = $this->_config->get_string('pgcache.engine'); switch ($engine) { case 'memcached': $engineConfig = array('servers' => $this->_config->get_array('pgcache.memcached.servers'), 'persistent' => $this->_config->get_boolean('pgcache.memcached.persistent'), 'aws_autodiscovery' => $this->_config->get_boolean('pgcache.memcached.aws_autodiscovery'), 'username' => $this->_config->get_boolean('pgcache.memcached.username'), 'password' => $this->_config->get_boolean('pgcache.memcached.password')); break; case 'redis': $engineConfig = array('servers' => $this->_config->get_array('pgcache.redis.servers'), 'persistent' => $this->_config->get_boolean('pgcache.redis.persistent'), 'dbid' => $this->_config->get_boolean('pgcache.redis.dbid'), 'password' => $this->_config->get_boolean('pgcache.redis.password')); break; case 'file': $engineConfig = array('section' => 'page', 'flush_parent' => Util_Environment::blog_id() == 0, 'locking' => $this->_config->get_boolean('pgcache.file.locking'), 'flush_timelimit' => $this->_config->get_integer('timelimit.cache_flush')); break; case 'file_generic': if (Util_Environment::blog_id() == 0) { $flush_dir = W3TC_CACHE_PAGE_ENHANCED_DIR; } else { $flush_dir = W3TC_CACHE_PAGE_ENHANCED_DIR . '/' . Util_Environment::host(); } $engineConfig = array('exclude' => array('.htaccess'), 'expire' => $this->_lifetime, 'cache_dir' => W3TC_CACHE_PAGE_ENHANCED_DIR, 'locking' => $this->_config->get_boolean('pgcache.file.locking'), 'flush_timelimit' => $this->_config->get_integer('timelimit.cache_flush'), 'flush_dir' => $flush_dir); break; default: $engineConfig = array(); } $engineConfig['use_expired_data'] = true; $engineConfig['module'] = 'pgcache'; $engineConfig['host'] = ''; // host is always put to a key $engineConfig['instance_id'] = Util_Environment::instance_id(); $cache = Cache::instance($engine, $engineConfig); } return $cache; }