diff --git a/readme.txt b/readme.txt index f00fc42..435df32 100644 --- a/readme.txt +++ b/readme.txt @@ -4,18 +4,24 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i Tags: cache, page cache, full page cache, nginx, memcached, apc, speed Requires at least: 3.0 Tested up to: 3.9 -Stable tag: 1.3.2 +Stable tag: 1.3.3 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html -Fastest way of cache for WordPress: memcached + nginx! +The fastest way to cache: full page in memory cache for WordPress! == Description == -WP-FFPC ( WordPress Fast Full Page Cache ) is a cache plugin for [WordPress](http://wordpress.org/ "WordPress"). It works with any webserver, including apache2, lighttpd, nginx, however, can be connected with [NGiNX](http://NGiNX.org "NGiNX") through memcached for unbeatable speed. -Supports PHP Memcached, PHP Memcache and APC as storage engines, subdomain and domain based WordPress Networks. +WP-FFPC ( WordPress Fast Full Page Cache ) is a cache plugin for [WordPress](http://wordpress.org/ "WordPress"). It works with any webserver, including apache2, lighttpd, nginx. +It can be configured to join forces with [NGiNX](http://NGiNX.org "NGiNX")'s built-in [memcached plugin](http://nginx.org/en/docs/http/ngx_http_memcached_module.html "memcached plugin") for unbeatable speed. = Features: = -* Wordpress Network support ( for subdomain layout ) +* Wordpress Network support + * fully supported domain/subdomain Networks + * will work in Network Enabled mode only for subdirectory based Multisites ( no per site setting possibility ) +* supports variable backends + * memcached with PHP Memcached + * memcached with PHP Memcache + * APC * cache exclude possibilities ( home, feeds, archieves, pages, singles ) * (optional) cache for logged-in users * 404 caching @@ -26,7 +32,6 @@ Supports PHP Memcached, PHP Memcache and APC as storage engines, subdomain and d * talkative log for [WP_DEBUG](http://codex.wordpress.org/WP_DEBUG "WP_DEBUG") * multiple memcached upstream support * precache ( manually or by timed by wp-cron ) -* [NGiNX](http://NGiNX.org "NGiNX") compatibility Many thanks for contributors, supporters, testers & bug reporters: @@ -89,6 +94,14 @@ Please post feature requests to [WP-FFPC feature request topic](http://wordpress == Changelog == += 1.3.3 = +*2014-04-29* + +What's changed: + +* removed broadcast message +* better logs ( additional logs and adding translation compatibility ) + = 1.3.2 = *2014-04-09* diff --git a/wp-common b/wp-common index 7d968c3..2749265 160000 --- a/wp-common +++ b/wp-common @@ -1 +1 @@ -Subproject commit 7d968c390813664514be669a055a6cf9dddf3c16 +Subproject commit 2749265f11b2c2e9d34cc35aa74aca55b2b1b93b diff --git a/wp-ffpc-backend.php b/wp-ffpc-backend.php index 18d02c6..c450e18 100644 --- a/wp-ffpc-backend.php +++ b/wp-ffpc-backend.php @@ -116,9 +116,8 @@ if (!class_exists('WP_FFPC_Backend')) { public function key ( &$prefix ) { /* data is string only with content, meta is not used in nginx */ $key = $prefix . str_replace ( array_keys( $this->urimap ), $this->urimap, $this->options['key'] ); - $this->log ( __translate__('original key configuration: ', $this->plugin_constant ) . $this->options['key'] ); - $this->log ( __translate__('setting key to: ', $this->plugin_constant ) . $key ); - + $this->log ( sprintf( __translate__( 'original key configuration: %s', $this->plugin_constant ), $this->options['key'] ) ); + $this->log ( sprintf( __translate__( 'setting key to: %s', $this->plugin_constant ), $key ) ); return $key; } @@ -137,14 +136,14 @@ if (!class_exists('WP_FFPC_Backend')) { return false; /* log the current action */ - $this->log ( __translate__('get ', $this->plugin_constant ). $key ); + $this->log ( sprintf( __translate__( 'get %s', $this->plugin_constant ), $key ) ); /* proxy to internal function */ $internal = $this->proxy( 'get' ); $result = $this->$internal( $key ); if ( $result === false ) - $this->log ( __translate__( "failed to get entry: ", $this->plugin_constant ) . $key ); + $this->log ( sprintf( __translate__( 'failed to get entry: %s', $this->plugin_constant ), $key ) ); return $result; } @@ -164,7 +163,7 @@ if (!class_exists('WP_FFPC_Backend')) { return false; /* log the current action */ - $this->log( __translate__('set ', $this->plugin_constant ) . $key . __translate__(' expiration time: ', $this->plugin_constant ) . $this->options['expire']); + $this->log ( sprintf( __translate__( 'set %s expiration time: %s', $this->plugin_constant ), $key, $this->options['expire'] ) ); /* proxy to internal function */ $internal = $this->options['cache_type'] . '_set'; @@ -172,7 +171,7 @@ if (!class_exists('WP_FFPC_Backend')) { /* check result validity */ if ( $result === false ) - $this->log ( __translate__('failed to set entry: ', $this->plugin_constant ) . $key, LOG_WARNING ); + $this->log ( sprintf( __translate__( 'failed to set entry: %s', $this->plugin_constant ), $key ), LOG_WARNING ); return $result; } @@ -232,7 +231,7 @@ if (!class_exists('WP_FFPC_Backend')) { /* no path, don't do anything */ if ( empty( $path ) ) { - $this->log ( __translate__('unable to determine path from Post Permalink, post ID: ', $this->plugin_constant ) . $post_id , LOG_WARNING ); + $this->log ( sprintf( __translate__( 'unable to determine path from Post Permalink, post ID: %s', $this->plugin_constant ), $post_id ), LOG_WARNING ); return false; } @@ -499,11 +498,11 @@ if (!class_exists('WP_FFPC_Backend')) { foreach ( $keys as $key => $dummy ) { if ( ! apc_delete ( $key ) ) { - $this->log ( __translate__('Failed to delete APC entry: ', $this->plugin_constant ) . $key, LOG_ERR ); + $this->log ( sprintf( __translate__( 'Failed to delete APC entry: %s', $this->plugin_constant ), $key ), LOG_ERR ); //throw new Exception ( __translate__('Deleting APC entry failed with key ', $this->plugin_constant ) . $key ); } else { - $this->log ( __translate__( 'APC entry delete: ', $this->plugin_constant ) . $key ); + $this->log ( sprintf( __translate__( 'APC entry delete: %s', $this->plugin_constant ), $key ) ); } } } @@ -567,7 +566,7 @@ if (!class_exists('WP_FFPC_Backend')) { /* only add servers that does not exists already in connection pool */ if ( !@array_key_exists($server_id , $servers_alive ) ) { $this->connection->addServer( $server['host'], $server['port'] ); - $this->log ( $server_id . __translate__(" added, persistent mode: ", $this->plugin_constant ) . $this->options['persistent'] ); + $this->log ( sprintf( __translate__( '%s added, persistent mode: %s', $this->plugin_constant ), $server_id, $this->options['persistent'] ) ); } } @@ -591,7 +590,7 @@ if (!class_exists('WP_FFPC_Backend')) { $this->status[$server_id] = 0; /* if server uptime is not empty, it's most probably up & running */ if ( !empty($details['uptime']) ) { - $this->log ( $server_id . __translate__(" server is up & running", $this->plugin_constant )); + $this->log ( sprintf( __translate__( '%s server is up & running', $this->plugin_constant ), $server_id ) ); $this->status[$server_id] = 1; } } @@ -621,7 +620,8 @@ if (!class_exists('WP_FFPC_Backend')) { /* if storing failed, log the error code */ if ( $result === false ) { $code = $this->connection->getResultCode(); - $this->log ( __translate__('unable to set entry ', $this->plugin_constant ) . $key . __translate__( ', Memcached error code: ', $this->plugin_constant ) . $code ); + $this->log ( sprintf( __translate__( 'unable to set entry: %s', $this->plugin_constant ), $key ) ); + $this->log ( sprintf( __translate__( 'Memcached error code: %s', $this->plugin_constant ), $code ) ); //throw new Exception ( __translate__('Unable to store Memcached entry ', $this->plugin_constant ) . $key . __translate__( ', error code: ', $this->plugin_constant ) . $code ); } @@ -653,10 +653,11 @@ if (!class_exists('WP_FFPC_Backend')) { if ( $kresult === false ) { $code = $this->connection->getResultCode(); - $this->log ( __translate__('unable to delete entry ', $this->plugin_constant ) . $key . __translate__( ', Memcached error code: ', $this->plugin_constant ) . $code ); + $this->log ( sprintf( __translate__( 'unable to delete entry: %s', $this->plugin_constant ), $key ) ); + $this->log ( sprintf( __translate__( 'Memcached error code: %s', $this->plugin_constant ), $code ) ); } else { - $this->log ( __translate__( 'entry deleted: ', $this->plugin_constant ) . $key ); + $this->log ( sprintf( __translate__( 'entry deleted: %s', $this->plugin_constant ), $key ) ); } } } @@ -702,7 +703,7 @@ if (!class_exists('WP_FFPC_Backend')) { else $this->status[$server_id] = $this->connection->$conn ( $server['host'] , $server['port'] ); - $this->log ( $server_id . __translate__(" added, persistent mode: ", $this->plugin_constant ) . $this->options['persistent'] ); + $this->log ( sprintf( __translate__( '%s added, persistent mode: %s', $this->plugin_constant ), $server_id, $this->options['persistent'] ) ); } /* backend is now alive */ @@ -721,9 +722,9 @@ if (!class_exists('WP_FFPC_Backend')) { foreach ( $this->options['servers'] as $server_id => $server ) { $this->status[$server_id] = $this->connection->getServerStatus( $server['host'], $server['port'] ); if ( $this->status[$server_id] == 0 ) - $this->log ( $server_id . __translate__(" server is down", $this->plugin_constant )); + $this->log ( sprintf( __translate__( '%s server is down', $this->plugin_constant ), $server_id ) ); else - $this->log ( $server_id . __translate__(" server is up & running", $this->plugin_constant )); + $this->log ( sprintf( __translate__( '%s server is up & running', $this->plugin_constant ), $server_id ) ); } } @@ -772,10 +773,10 @@ if (!class_exists('WP_FFPC_Backend')) { $kresult = $this->connection->delete( $key ); if ( $kresult === false ) { - $this->log ( __translate__('unable to delete entry ', $this->plugin_constant ) . $key ); + $this->log ( sprintf( __translate__( 'unable to delete entry: %s', $this->plugin_constant ), $key ) ); } else { - $this->log ( __translate__( 'entry deleted: ', $this->plugin_constant ) . $key ); + $this->log ( sprintf( __translate__( 'entry deleted: %s', $this->plugin_constant ), $key ) ); } } } diff --git a/wp-ffpc-class.php b/wp-ffpc-class.php index 6c7c080..d361f52 100644 --- a/wp-ffpc-class.php +++ b/wp-ffpc-class.php @@ -30,7 +30,7 @@ if ( ! class_exists( 'WP_FFPC' ) ) { * @var array $shell_possibilities List of possible precache worker callers [TODO] finish list of vars */ - class WP_FFPC extends WP_Plugins_Abstract_v2 { + class WP_FFPC extends WP_Plugins_Abstract_v3 { const host_separator = ','; const port_separator = ':'; const donation_id_key = 'hosted_button_id='; @@ -188,8 +188,7 @@ if ( ! class_exists( 'WP_FFPC' ) ) { /* clean up schedule if needed */ if ( !isset( $this->options['precache_schedule'] ) || $this->options['precache_schedule'] == 'null' ) { - $this->log ( 'CRON clearing event' ); - wp_clear_scheduled_hook ( self::precache_id ); + $this->log ( sprintf ( __( 'clearing scheduled hook %s', $this->plugin_constant ), self::precache_id ) ); } /* add precache coldrun action */ @@ -744,7 +743,7 @@ if ( ! class_exists( 'WP_FFPC' ) ) { $this->scheduled = wp_schedule_event( time(), $this->options['precache_schedule'] , self::precache_id ); } elseif ( ( !isset($this->options['precache_schedule']) || $this->options['precache_schedule'] == 'null' ) && !empty( $schedule ) ) { - $this->log ( __('Clearing WP-CRON clearing event ' , $this->plugin_constant ) ); + $this->log ( __('Clearing WP-CRON scheduled hook ' , $this->plugin_constant ) ); wp_clear_scheduled_hook ( self::precache_id ); } diff --git a/wp-ffpc.php b/wp-ffpc.php index f3e982b..1d905cb 100644 --- a/wp-ffpc.php +++ b/wp-ffpc.php @@ -50,6 +50,6 @@ $wp_ffpc_defaults = array ( 'key' => '$scheme://$host$request_uri', ); -$wp_ffpc = new WP_FFPC ( 'wp-ffpc', '1.2', 'WP-FFPC', $wp_ffpc_defaults, 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=XU3DG7LLA76WC' ); +$wp_ffpc = new WP_FFPC ( 'wp-ffpc', '1.3.3', 'WP-FFPC', $wp_ffpc_defaults, 'https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=XU3DG7LLA76WC' ); ?>