Commit 0ca5e34c authored by Erick Hitter's avatar Erick Hitter
Browse files

PHPDoc and some simplification of the URL cleaner

parent 6aec566c
...@@ -26,6 +26,8 @@ function wp_redis_cache_exception_handler( $exception ) { ...@@ -26,6 +26,8 @@ function wp_redis_cache_exception_handler( $exception ) {
} }
/** /**
* END GLOBAL CONFIGURATION
*
* DO NOT EDIT BELOW THIS LINE! * DO NOT EDIT BELOW THIS LINE!
*/ */
$GLOBALS['wp_redis_cache_config']['current_url'] = wp_redis_cache_get_clean_url( $GLOBALS['wp_redis_cache_config']['secret_string'] ); $GLOBALS['wp_redis_cache_config']['current_url'] = wp_redis_cache_get_clean_url( $GLOBALS['wp_redis_cache_config']['secret_string'] );
...@@ -34,19 +36,43 @@ $GLOBALS['wp_redis_cache_config']['redis_key'] = md5( $GLOBALS['wp_redis_cache ...@@ -34,19 +36,43 @@ $GLOBALS['wp_redis_cache_config']['redis_key'] = md5( $GLOBALS['wp_redis_cache
// Start the timer so we can track the page load time // Start the timer so we can track the page load time
$start = microtime(); $start = microtime();
/**
* UTILITY FUNCTIONS
*/
/**
* Compute microtime from a timestamp
*
* @return float
*/
function wp_redis_cache_get_micro_time( $time ) { function wp_redis_cache_get_micro_time( $time ) {
list( $usec, $sec ) = explode( " ", $time ); list( $usec, $sec ) = explode( " ", $time );
return ( (float) $usec + (float) $sec ); return ( (float) $usec + (float) $sec );
} }
/**
* Is the current request a refresh request with the correct secret key?
*
* @return bool
*/
function wp_redis_cache_refresh_has_secret( $secret ) { function wp_redis_cache_refresh_has_secret( $secret ) {
return isset( $_GET['refresh'] ) && $secret == $_GET['refresh']; return isset( $_GET['refresh'] ) && $secret == $_GET['refresh'];
} }
/**
* Does current request include a refresh request?
*
* @return bool
*/
function wp_redis_cache_request_has_secret( $secret ) { function wp_redis_cache_request_has_secret( $secret ) {
return false !== strpos( $_SERVER['REQUEST_URI'], "refresh=${secret}" ); return false !== strpos( $_SERVER['REQUEST_URI'], "refresh=${secret}" );
} }
/**
* Determine if request is from a server other than the one running this code
*
* @return bool
*/
function wp_redis_cache_is_remote_page_load( $current_url, $server_ip ) { function wp_redis_cache_is_remote_page_load( $current_url, $server_ip ) {
return ( isset( $_SERVER['HTTP_REFERER'] ) return ( isset( $_SERVER['HTTP_REFERER'] )
&& $_SERVER['HTTP_REFERER'] == $current_url && $_SERVER['HTTP_REFERER'] == $current_url
...@@ -54,6 +80,11 @@ function wp_redis_cache_is_remote_page_load( $current_url, $server_ip ) { ...@@ -54,6 +80,11 @@ function wp_redis_cache_is_remote_page_load( $current_url, $server_ip ) {
&& $_SERVER['REMOTE_ADDR'] != $server_ip ); && $_SERVER['REMOTE_ADDR'] != $server_ip );
} }
/**
* Set proper IP address for proxied requests
*
* @return null
*/
function wp_redis_cache_handle_cdn_remote_addressing() { function wp_redis_cache_handle_cdn_remote_addressing() {
// so we don't confuse the cloudflare server // so we don't confuse the cloudflare server
if ( isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ) { if ( isset( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ) {
...@@ -61,15 +92,28 @@ function wp_redis_cache_handle_cdn_remote_addressing() { ...@@ -61,15 +92,28 @@ function wp_redis_cache_handle_cdn_remote_addressing() {
} }
} }
/**
* Prepare a URL for use as a cache key
*
* Strips secret key from URL
*
* @param string
* @return string
*/
function wp_redis_cache_get_clean_url( $secret ) { function wp_redis_cache_get_clean_url( $secret ) {
$replace_keys = array( "?refresh=${secret}","&refresh=${secret}" ); $replace_keys = array( "?refresh=${secret}","&refresh=${secret}" );
$url = "http://${_SERVER['HTTP_HOST']}${_SERVER['REQUEST_URI']}"; $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$current_url = str_replace( $replace_keys, '', $url ); return str_replace( $replace_keys, '', $url );
return $current_url;
} }
/**
* BEGIN CACHING LOGIC
*/
// Set proper IP for proxied requests
wp_redis_cache_handle_cdn_remote_addressing(); wp_redis_cache_handle_cdn_remote_addressing();
// Ensure WP uses a theme (this is normally set in index.php)
if ( ! defined( 'WP_USE_THEMES' ) ) { if ( ! defined( 'WP_USE_THEMES' ) ) {
define( 'WP_USE_THEMES', true ); define( 'WP_USE_THEMES', true );
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment