updated plugin W3 Total Cache
version 2.6.1
This commit is contained in:
@ -1,4 +1,10 @@
|
||||
<?php
|
||||
/**
|
||||
* File: Cache.php
|
||||
*
|
||||
* @package W3TC
|
||||
*/
|
||||
|
||||
namespace W3TC;
|
||||
|
||||
/**
|
||||
@ -6,196 +12,205 @@ namespace W3TC;
|
||||
*/
|
||||
|
||||
/**
|
||||
* class Cache
|
||||
* Class: Cache
|
||||
*/
|
||||
class Cache {
|
||||
/**
|
||||
* Returns cache engine instance
|
||||
*
|
||||
* @param string $engine
|
||||
* @param array $config
|
||||
* @param string $engine Engine key code.
|
||||
* @param array $config Configuration.
|
||||
* @return W3_Cache_Base
|
||||
*/
|
||||
static function instance( $engine, $config = array() ) {
|
||||
public static function instance( $engine, $config = array() ) {
|
||||
static $instances = array();
|
||||
|
||||
// common configuration data
|
||||
if ( !isset( $config['blog_id'] ) )
|
||||
// Common configuration data.
|
||||
if ( ! isset( $config['blog_id'] ) ) {
|
||||
$config['blog_id'] = Util_Environment::blog_id();
|
||||
}
|
||||
|
||||
$instance_key = sprintf( '%s_%s', $engine, md5( serialize( $config ) ) );
|
||||
|
||||
if ( !isset( $instances[$instance_key] ) ) {
|
||||
if ( ! isset( $instances[ $instance_key ] ) ) {
|
||||
switch ( $engine ) {
|
||||
case 'apc':
|
||||
if ( function_exists( 'apcu_store' ) )
|
||||
$instances[$instance_key] = new Cache_Apcu( $config );
|
||||
else if ( function_exists( 'apc_store' ) )
|
||||
$instances[$instance_key] = new Cache_Apc( $config );
|
||||
case 'apc':
|
||||
if ( function_exists( 'apcu_store' ) ) {
|
||||
$instances[ $instance_key ] = new Cache_Apcu( $config );
|
||||
} else if ( function_exists( 'apc_store' ) ) {
|
||||
$instances[ $instance_key ] = new Cache_Apc( $config );
|
||||
}
|
||||
break;
|
||||
|
||||
case 'eaccelerator':
|
||||
$instances[$instance_key] = new Cache_Eaccelerator( $config );
|
||||
break;
|
||||
case 'eaccelerator':
|
||||
$instances[ $instance_key ] = new Cache_Eaccelerator( $config );
|
||||
break;
|
||||
|
||||
case 'file':
|
||||
$instances[$instance_key] = new Cache_File( $config );
|
||||
break;
|
||||
case 'file':
|
||||
$instances[ $instance_key ] = new Cache_File( $config );
|
||||
break;
|
||||
|
||||
case 'file_generic':
|
||||
$instances[$instance_key] = new Cache_File_Generic( $config );
|
||||
break;
|
||||
case 'file_generic':
|
||||
$instances[ $instance_key ] = new Cache_File_Generic( $config );
|
||||
break;
|
||||
|
||||
case 'memcached':
|
||||
if ( class_exists( '\Memcached' ) ) {
|
||||
$instances[$instance_key] = new Cache_Memcached( $config );
|
||||
} elseif ( class_exists( '\Memcache' ) ) {
|
||||
$instances[$instance_key] = new Cache_Memcache( $config );
|
||||
}
|
||||
break;
|
||||
case 'memcached':
|
||||
if ( class_exists( '\Memcached' ) ) {
|
||||
$instances[ $instance_key ] = new Cache_Memcached( $config );
|
||||
} elseif ( class_exists( '\Memcache' ) ) {
|
||||
$instances[ $instance_key ] = new Cache_Memcache( $config );
|
||||
}
|
||||
break;
|
||||
|
||||
case 'nginx_memcached':
|
||||
$instances[$instance_key] = new Cache_Nginx_Memcached( $config );
|
||||
break;
|
||||
case 'nginx_memcached':
|
||||
$instances[ $instance_key ] = new Cache_Nginx_Memcached( $config );
|
||||
break;
|
||||
|
||||
case 'redis':
|
||||
$instances[$instance_key] = new Cache_Redis( $config );
|
||||
break;
|
||||
case 'redis':
|
||||
$instances[ $instance_key ] = new Cache_Redis( $config );
|
||||
break;
|
||||
|
||||
case 'wincache':
|
||||
$instances[$instance_key] = new Cache_Wincache( $config );
|
||||
break;
|
||||
case 'wincache':
|
||||
$instances[ $instance_key ] = new Cache_Wincache( $config );
|
||||
break;
|
||||
|
||||
case 'xcache':
|
||||
$instances[$instance_key] = new Cache_Xcache( $config );
|
||||
break;
|
||||
case 'xcache':
|
||||
$instances[ $instance_key ] = new Cache_Xcache( $config );
|
||||
break;
|
||||
|
||||
default:
|
||||
trigger_error( 'Incorrect cache engine ' . esc_html( $engine ), E_USER_WARNING );
|
||||
$instances[$instance_key] = new Cache_Base( $config );
|
||||
break;
|
||||
default:
|
||||
trigger_error( 'Incorrect cache engine ' . esc_html( $engine ), E_USER_WARNING );
|
||||
$instances[ $instance_key ] = new Cache_Base( $config );
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !isset( $instances[$instance_key] ) ||
|
||||
!$instances[$instance_key]->available() ) {
|
||||
$instances[$instance_key] = new Cache_Base( $config );
|
||||
if ( ! isset( $instances[ $instance_key ] ) || ! $instances[ $instance_key ]->available() ) {
|
||||
$instances[ $instance_key ] = new Cache_Base( $config );
|
||||
}
|
||||
}
|
||||
|
||||
return $instances[$instance_key];
|
||||
return $instances[ $instance_key ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns caching engine name
|
||||
*
|
||||
* @param unknown $engine
|
||||
* @param unknown $module
|
||||
* @param string $engine Engine key code.
|
||||
* @param string $module Module.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
static public function engine_name( $engine, $module = '' ) {
|
||||
public static function engine_name( $engine, $module = '' ) {
|
||||
switch ( $engine ) {
|
||||
case 'memcached':
|
||||
if ( class_exists( 'Memcached' ) )
|
||||
$engine_name = 'memcached';
|
||||
else
|
||||
$engine_name = 'memcache';
|
||||
case 'memcached':
|
||||
if ( class_exists( 'Memcached' ) ) {
|
||||
$engine_name = 'Memcached';
|
||||
} else {
|
||||
$engine_name = 'Memcache';
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
case 'nginx_memcached':
|
||||
$engine_name = 'Nginx + Memcached';
|
||||
break;
|
||||
|
||||
case 'nginx_memcached':
|
||||
$engine_name = 'nginx + memcached';
|
||||
break;
|
||||
case 'apc':
|
||||
$engine_name = 'APC';
|
||||
break;
|
||||
|
||||
case 'apc':
|
||||
$engine_name = 'apc';
|
||||
break;
|
||||
case 'eaccelerator':
|
||||
$engine_name = 'EAccelerator';
|
||||
break;
|
||||
|
||||
case 'eaccelerator':
|
||||
$engine_name = 'eaccelerator';
|
||||
break;
|
||||
case 'redis':
|
||||
$engine_name = 'Redis';
|
||||
break;
|
||||
|
||||
case 'redis':
|
||||
$engine_name = 'redis';
|
||||
break;
|
||||
case 'xcache':
|
||||
$engine_name = 'XCache';
|
||||
break;
|
||||
|
||||
case 'xcache':
|
||||
$engine_name = 'xcache';
|
||||
break;
|
||||
case 'wincache':
|
||||
$engine_name = 'WinCache';
|
||||
break;
|
||||
|
||||
case 'wincache':
|
||||
$engine_name = 'wincache';
|
||||
break;
|
||||
case 'file':
|
||||
if ( 'pgcache' === $module ) {
|
||||
$engine_name = 'Disk: Basic';
|
||||
} else {
|
||||
$engine_name = 'Disk';
|
||||
}
|
||||
break;
|
||||
|
||||
case 'file':
|
||||
if ( $module == 'pgcache' )
|
||||
$engine_name = 'disk: basic';
|
||||
else
|
||||
$engine_name = 'disk';
|
||||
break;
|
||||
case 'file_generic':
|
||||
$engine_name = 'Disk: Enhanced';
|
||||
break;
|
||||
|
||||
case 'file_generic':
|
||||
$engine_name = 'disk: enhanced';
|
||||
break;
|
||||
case 'ftp':
|
||||
$engine_name = 'Self-hosted / file transfer protocol upload';
|
||||
break;
|
||||
|
||||
case 'ftp':
|
||||
$engine_name = 'self-hosted / file transfer protocol upload';
|
||||
break;
|
||||
case 's3':
|
||||
$engine_name = 'Amazon Simple Storage Service (S3)';
|
||||
break;
|
||||
|
||||
case 's3':
|
||||
$engine_name = 'amazon simple storage service (s3)';
|
||||
break;
|
||||
case 's3_compatible':
|
||||
$engine_name = 'S3 compatible';
|
||||
break;
|
||||
|
||||
case 's3_compatible':
|
||||
$engine_name = 's3 compatible';
|
||||
break;
|
||||
case 'cf':
|
||||
$engine_name = 'Amazon Cloudfront';
|
||||
break;
|
||||
|
||||
case 'cf':
|
||||
$engine_name = 'amazon cloudfront';
|
||||
break;
|
||||
case 'google_drive':
|
||||
$engine_name = 'Google Drive';
|
||||
break;
|
||||
|
||||
case 'google_drive':
|
||||
$engine_name = 'google drive';
|
||||
break;
|
||||
case 'highwinds':
|
||||
$engine_name = 'Highwinds';
|
||||
break;
|
||||
|
||||
case 'highwinds':
|
||||
$engine_name = 'highwinds';
|
||||
break;
|
||||
case 'cf2':
|
||||
$engine_name = 'Amazon Cloudfront';
|
||||
break;
|
||||
|
||||
case 'cf2':
|
||||
$engine_name = 'amazon cloudfront';
|
||||
break;
|
||||
case 'rscf':
|
||||
$engine_name = 'Rackspace Cloud Files';
|
||||
break;
|
||||
|
||||
case 'rscf':
|
||||
$engine_name = 'rackspace cloud files';
|
||||
break;
|
||||
case 'azure':
|
||||
$engine_name = 'Microsoft Azure Storage';
|
||||
break;
|
||||
|
||||
case 'azure':
|
||||
$engine_name = 'microsoft azure storage';
|
||||
break;
|
||||
case 'edgecast':
|
||||
$engine_name = 'Media Template ProCDN / EdgeCast';
|
||||
break;
|
||||
|
||||
case 'edgecast':
|
||||
$engine_name = 'media template procdn / edgecast';
|
||||
break;
|
||||
case 'att':
|
||||
$engine_name = 'AT&T';
|
||||
break;
|
||||
|
||||
case 'att':
|
||||
$engine_name = 'at&t';
|
||||
break;
|
||||
case 'rackspace_cdn':
|
||||
$engine_name = 'Rackspace';
|
||||
break;
|
||||
|
||||
case 'rackspace_cdn':
|
||||
$engine_name = 'rackspace';
|
||||
break;
|
||||
case 'stackpath2':
|
||||
$engine_name = 'StackPath';
|
||||
break;
|
||||
|
||||
case 'stackpath2':
|
||||
$engine_name = 'stackpath';
|
||||
break;
|
||||
case 'bunnycdn':
|
||||
$engine_name = 'Bunny CDN';
|
||||
break;
|
||||
|
||||
default:
|
||||
$engine_name = $engine;
|
||||
break;
|
||||
case '':
|
||||
$engine_name = __( 'None', 'w3-total-cache' );
|
||||
break;
|
||||
|
||||
default:
|
||||
$engine_name = $engine;
|
||||
break;
|
||||
}
|
||||
|
||||
return $engine_name;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user