98 lines
1.7 KiB
PHP
98 lines
1.7 KiB
PHP
<?php
|
|
namespace W3TC;
|
|
|
|
/**
|
|
* W3 CDN Mirror Class
|
|
*/
|
|
class CdnEngine_Mirror extends CdnEngine_Base {
|
|
/**
|
|
* PHP5 Constructor
|
|
*
|
|
* @param array $config
|
|
*/
|
|
function __construct( $config = array() ) {
|
|
$config = array_merge( array(
|
|
'domain' => array(),
|
|
), $config );
|
|
|
|
parent::__construct( $config );
|
|
}
|
|
|
|
/**
|
|
* Uploads files stub
|
|
*
|
|
* @param array $files
|
|
* @param array $results
|
|
* @param boolean $force_rewrite
|
|
* @return boolean
|
|
*/
|
|
function upload( $files, &$results, $force_rewrite = false,
|
|
$timeout_time = NULL ) {
|
|
$results = $this->_get_results( $files, W3TC_CDN_RESULT_OK, 'OK' );
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Deletes files stub
|
|
*
|
|
* @param array $files
|
|
* @param array $results
|
|
* @return boolean
|
|
*/
|
|
function delete( $files, &$results ) {
|
|
$results = $this->_get_results( $files, W3TC_CDN_RESULT_OK, 'OK' );
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Tests mirror
|
|
*
|
|
* @param string $error
|
|
* @return bool
|
|
*/
|
|
function test( &$error ) {
|
|
if ( !parent::test( $error ) ) {
|
|
return false;
|
|
}
|
|
|
|
$results = array();
|
|
$files = array(
|
|
array(
|
|
'local_path' => '',
|
|
'remote_path' => 'purge_test_' . time()
|
|
) );
|
|
|
|
if ( !$this->purge( $files, $results ) && isset( $results[0]['error'] ) ) {
|
|
$error = $results[0]['error'];
|
|
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Returns array of CDN domains
|
|
*
|
|
* @return array
|
|
*/
|
|
function get_domains() {
|
|
if ( !empty( $this->_config['domain'] ) ) {
|
|
return (array) $this->_config['domain'];
|
|
}
|
|
|
|
return array();
|
|
}
|
|
|
|
/**
|
|
* How and if headers should be set
|
|
*
|
|
* @return string W3TC_CDN_HEADER_NONE, W3TC_CDN_HEADER_UPLOADABLE, W3TC_CDN_HEADER_MIRRORING
|
|
*/
|
|
function headers_support() {
|
|
return W3TC_CDN_HEADER_MIRRORING;
|
|
}
|
|
}
|