View file File name : ConfigCache.php Content :<?php namespace W3TC; /** * Provides access to config cache, used mostly when config is stored in * database to not issue config loading database queries on each http request */ class ConfigCache { /** * Reads config from config cache */ static public function util_array_from_storage( $blog_id, $preview ) { $cache = self::get_cache(); $config = $cache->get( self::get_key( $blog_id, $preview ) ); if ( is_array( $config ) ) { return $config; } return null; } /** * Removes config cache entry so that it can be read from original source * on next attempt */ static public function remove_item( $blog_id, $preview ) { $cache = self::get_cache(); $cache->hard_delete( self::get_key( $blog_id, false ) ); $cache->hard_delete( self::get_key( $blog_id, true ) ); } static public function save_item( $blog_id, $preview, $data ) { $cache = self::get_cache(); $cache->set( self::get_key( $blog_id, $preview ), $data ); } static private function get_cache() { static $cache = null; if ( !is_null( $cache ) ) { return $cache; } switch ( W3TC_CONFIG_CACHE_ENGINE ) { case 'memcached': $engineConfig = array( 'servers' => explode( ',', W3TC_CONFIG_CACHE_MEMCACHED_SERVERS ), 'persistent' => ( defined( 'W3TC_CONFIG_CACHE_MEMCACHED_PERSISTENT' ) ? W3TC_CONFIG_CACHE_MEMCACHED_PERSISTENT : true ), 'aws_autodiscovery' => ( defined( 'W3TC_CONFIG_CACHE_MEMCACHED_AWS_AUTODISCOVERY' ) ? W3TC_CONFIG_CACHE_MEMCACHED_AWS_AUTODISCOVERY : false ), 'username' => ( defined( 'W3TC_CONFIG_CACHE_MEMCACHED_USERNAME' ) ? W3TC_CONFIG_CACHE_MEMCACHED_USERNAME : '' ), 'password' => ( defined( 'W3TC_CONFIG_CACHE_MEMCACHED_PASSWORD' ) ? W3TC_CONFIG_CACHE_MEMCACHED_PASSWORD : '' ), 'key_version_mode' => 'disabled' ); break; case 'redis': $engineConfig = array( 'servers' => explode( ',', W3TC_CONFIG_CACHE_REDIS_SERVERS ), 'persistent' => ( defined( 'W3TC_CONFIG_CACHE_REDIS_PERSISTENT' ) ? W3TC_CONFIG_CACHE_REDIS_PERSISTENT : true ), 'dbid' => ( defined( 'W3TC_CONFIG_CACHE_REDIS_DBID' ) ? W3TC_CONFIG_CACHE_REDIS_DBID : 0 ), 'password' => ( defined( 'W3TC_CONFIG_CACHE_REDIS_PASSWORD' ) ? W3TC_CONFIG_CACHE_REDIS_PASSWORD : '' ), 'key_version_mode' => 'disabled' ); break; default: $engineConfig = array(); } $engineConfig['blog_id'] = '0'; $engineConfig['module'] = 'config'; $engineConfig['host'] = ''; $engineConfig['instance_id'] = ( defined( 'W3TC_INSTANCE_ID' ) ? W3TC_INSTANCE_ID : 0 ); $cache = Cache::instance( W3TC_CONFIG_CACHE_ENGINE, $engineConfig ); return $cache; } static private function get_key( $blog_id, $preview ) { return 'w3tc_config_' . $blog_id . ( $preview ? '_preview' : '' ); } }