HEX
Server: Apache
System: Linux web2213.uni5.net 5.4.282-1.el8.elrepo.x86_64 #1 SMP Mon Aug 19 18:33:22 EDT 2024 x86_64
User: clinicamaciel (596848)
PHP: 7.3.33
Disabled: apache_child_terminate,c99_buff_prepare,c99_sess_put,dl,eval,exec,leak,link,myshellexec,openlog,passthru,pclose,pcntl_exec,php_check_syntax,php_strip_whitespace,popen,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,symlink,system,socket_listen,socket_create_listen,putenv
Upload Files
File: /home/clinicamaciel/www/wp-content/plugins/w3-total-cache/CdnEngine.php
<?php
/**
 * File: CdnEngine.php
 *
 * @package W3TC
 */

namespace W3TC;

/**
 * Class: CdnEngine
 */
class CdnEngine {
	/**
	 * Returns CdnEngine_Base instance.
	 *
	 * @param string $engine CDN engine.
	 * @param array  $config Configuration.
	 * @return CdnEngine_Base
	 */
	public static function instance( $engine, array $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 'azuremi':
					$instances[ $instance_key ] = new CdnEngine_Azure_MI( $config );
					break;

				case 'bunnycdn':
					$instances[ $instance_key ] = new CdnEngine_Mirror_BunnyCdn( $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:
					empty( $engine ) || trigger_error( 'Incorrect CDN engine', E_USER_WARNING );

					$instances[ $instance_key ] = new CdnEngine_Base();
					break;
			}
		}

		return $instances[ $instance_key ];
	}
}