laipower/wp-content/plugins/w3-total-cache/CdnEngine.php

105 lines
2.4 KiB
PHP

<?php
namespace W3TC;
/**
* class CdnEngine
*/
class CdnEngine {
/**
* Returns CdnEngine_Base instance
*
* @param string $engine
* @param array $config
* @return CdnEngine_Base
*/
static function instance( $engine, $config = array() ) {
static $instances = array();
$instance_key = sprintf( '%s_%s', $engine, md5( serialize( $config ) ) );
if ( !isset( $instances[$instance_key] ) ) {
switch ( $engine ) {
case 'akamai':
$instances[$instance_key] = new CdnEngine_Mirror_Akamai( $config );
break;
case 'att':
$instances[$instance_key] = new CdnEngine_Mirror_Att( $config );
break;
case 'azure':
$instances[$instance_key] = new CdnEngine_Azure( $config );
break;
case 'cf':
$instances[$instance_key] = new CdnEngine_CloudFront( $config );
break;
case 'cf2':
$instances[$instance_key] = new CdnEngine_Mirror_CloudFront( $config );
break;
case 'cotendo':
$instances[$instance_key] = new CdnEngine_Mirror_Cotendo( $config );
break;
case 'edgecast':
$instances[$instance_key] = new CdnEngine_Mirror_Edgecast( $config );
break;
case 'ftp':
$instances[$instance_key] = new CdnEngine_Ftp( $config );
break;
case 'google_drive':
$instances[$instance_key] = new CdnEngine_GoogleDrive( $config );
break;
case 'highwinds':
$instances[$instance_key] = new CdnEngine_Mirror_Highwinds( $config );
break;
case 'limelight':
$instances[$instance_key] = new CdnEngine_Mirror_LimeLight( $config );
break;
case 'mirror':
$instances[$instance_key] = new CdnEngine_Mirror( $config );
break;
case 'rackspace_cdn':
$instances[$instance_key] = new CdnEngine_Mirror_RackSpaceCdn( $config );
break;
case 'rscf':
$instances[$instance_key] =
new CdnEngine_RackSpaceCloudFiles( $config );
break;
case 's3':
$instances[$instance_key] = new CdnEngine_S3( $config );
break;
case 's3_compatible':
$instances[$instance_key] = new CdnEngine_S3_Compatible( $config );
break;
case 'stackpath':
$instances[$instance_key] = new CdnEngine_Mirror_StackPath( $config );
break;
case 'stackpath2':
$instances[$instance_key] = new CdnEngine_Mirror_StackPath2( $config );
break;
default :
trigger_error( 'Incorrect CDN engine', E_USER_WARNING );
$instances[$instance_key] = new CdnEngine_Base();
break;
}
}
return $instances[$instance_key];
}
}