= 1.3.3 =
*2014-04-29* What's changed: * removed broadcast message * better logs ( additional logs and adding translation compatibility )
This commit is contained in:
parent
f95f0a3f2c
commit
a9cf7ff058
5 changed files with 45 additions and 32 deletions
25
readme.txt
25
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*
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 7d968c390813664514be669a055a6cf9dddf3c16
|
||||
Subproject commit 2749265f11b2c2e9d34cc35aa74aca55b2b1b93b
|
|
@ -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 ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
||||
|
|
|
@ -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' );
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in a new issue