Version Description
Version 2.0 is a significant rewrite of the plugin. Please read the v2.0.0 release notes.
- Attempt to reliably update the dropin when it's outdated
- Show ACL username on settings screen
- Show full diagnostics with
wp redis status
- Always set
FS_CHMOD_FILE
when copying theobject-cache.php
- Don't encode bullets in password diagnostics
- Call
redis_object_cache_update_dropin
during dropin update
Download this release
Release Info
Developer | tillkruess |
Plugin | Redis Object Cache |
Version | 2.0.4 |
Comparing to | |
See all releases |
Code changes from version 2.0.3 to 2.0.4
- includes/class-plugin.php +38 -21
- includes/cli/class-commands.php +17 -23
- includes/object-cache.php +1 -1
- includes/ui/diagnostics.php +22 -20
- includes/ui/tabs/diagnostics.php +2 -0
- includes/ui/tabs/overview.php +8 -6
- readme.txt +14 -3
- redis-cache.php +1 -1
includes/class-plugin.php
CHANGED
@@ -67,7 +67,7 @@ class Plugin {
|
|
67 |
|
68 |
public function add_actions_and_filters() {
|
69 |
add_action( 'deactivate_plugin', array( $this, 'on_deactivation' ) );
|
70 |
-
add_action( '
|
71 |
|
72 |
add_action( is_multisite() ? 'network_admin_menu' : 'admin_menu', array( $this, 'add_admin_menu_page' ) );
|
73 |
|
@@ -142,7 +142,7 @@ class Plugin {
|
|
142 |
foreach ( $this->actions as $name ) {
|
143 |
// verify nonce
|
144 |
if ( $action === $name && wp_verify_nonce( $_GET['_wpnonce'], $action ) ) {
|
145 |
-
$url =
|
146 |
|
147 |
if ( $this->initialize_filesystem( $url ) === false ) {
|
148 |
return; // request filesystem credentials
|
@@ -329,7 +329,7 @@ class Plugin {
|
|
329 |
$dropin = get_plugin_data( WP_CONTENT_DIR . '/object-cache.php' );
|
330 |
$plugin = get_plugin_data( WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php' );
|
331 |
|
332 |
-
return
|
333 |
}
|
334 |
|
335 |
public function object_cache_dropin_outdated() {
|
@@ -340,7 +340,11 @@ class Plugin {
|
|
340 |
$dropin = get_plugin_data( WP_CONTENT_DIR . '/object-cache.php' );
|
341 |
$plugin = get_plugin_data( WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php' );
|
342 |
|
343 |
-
|
|
|
|
|
|
|
|
|
344 |
}
|
345 |
|
346 |
public function get_status() {
|
@@ -435,8 +439,7 @@ class Plugin {
|
|
435 |
}
|
436 |
|
437 |
if ( $this->object_cache_dropin_exists() ) {
|
438 |
-
|
439 |
-
$url = wp_nonce_url( network_admin_url( add_query_arg( 'action', 'update-dropin', $this->page ) ), 'update-dropin' );
|
440 |
|
441 |
if ( $this->validate_object_cache_dropin() ) {
|
442 |
if ( $this->object_cache_dropin_outdated() ) {
|
@@ -507,7 +510,7 @@ class Plugin {
|
|
507 |
}
|
508 |
|
509 |
if ( in_array( $action, $this->actions ) ) {
|
510 |
-
$url =
|
511 |
|
512 |
if ( $action === 'flush-cache' ) {
|
513 |
$message = wp_cache_flush() ? 'cache-flushed' : 'flush-cache-failed';
|
@@ -517,7 +520,12 @@ class Plugin {
|
|
517 |
if ( $this->initialize_filesystem( $url, true ) ) {
|
518 |
switch ( $action ) {
|
519 |
case 'enable-cache':
|
520 |
-
$result = $wp_filesystem->copy(
|
|
|
|
|
|
|
|
|
|
|
521 |
do_action( 'redis_object_cache_enable', $result );
|
522 |
$message = $result ? 'cache-enabled' : 'enable-cache-failed';
|
523 |
break;
|
@@ -529,7 +537,12 @@ class Plugin {
|
|
529 |
break;
|
530 |
|
531 |
case 'update-dropin':
|
532 |
-
$result = $wp_filesystem->copy(
|
|
|
|
|
|
|
|
|
|
|
533 |
do_action( 'redis_object_cache_update_dropin', $result );
|
534 |
$message = $result ? 'dropin-updated' : 'update-dropin-failed';
|
535 |
break;
|
@@ -767,28 +780,32 @@ class Plugin {
|
|
767 |
return true;
|
768 |
}
|
769 |
|
770 |
-
public function maybe_update_dropin(
|
771 |
-
|
772 |
-
|
773 |
-
if (
|
774 |
-
$options['action'] !== 'update' ||
|
775 |
-
$options['type'] !== 'plugin' ||
|
776 |
-
! is_array( $options['plugins'] ) ||
|
777 |
-
! in_array( WP_REDIS_BASENAME, $options['plugins'] )
|
778 |
-
) {
|
779 |
return;
|
780 |
}
|
781 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
782 |
if ( ! $this->validate_object_cache_dropin() ) {
|
783 |
return;
|
784 |
}
|
785 |
|
786 |
-
if (
|
787 |
-
$wp_filesystem->copy(
|
788 |
WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php',
|
789 |
WP_CONTENT_DIR . '/object-cache.php',
|
790 |
-
true
|
|
|
791 |
);
|
|
|
|
|
792 |
}
|
793 |
}
|
794 |
|
67 |
|
68 |
public function add_actions_and_filters() {
|
69 |
add_action( 'deactivate_plugin', array( $this, 'on_deactivation' ) );
|
70 |
+
add_action( 'admin_init', array( $this, 'maybe_update_dropin' ) );
|
71 |
|
72 |
add_action( is_multisite() ? 'network_admin_menu' : 'admin_menu', array( $this, 'add_admin_menu_page' ) );
|
73 |
|
142 |
foreach ( $this->actions as $name ) {
|
143 |
// verify nonce
|
144 |
if ( $action === $name && wp_verify_nonce( $_GET['_wpnonce'], $action ) ) {
|
145 |
+
$url = $this->action_link( $action );
|
146 |
|
147 |
if ( $this->initialize_filesystem( $url ) === false ) {
|
148 |
return; // request filesystem credentials
|
329 |
$dropin = get_plugin_data( WP_CONTENT_DIR . '/object-cache.php' );
|
330 |
$plugin = get_plugin_data( WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php' );
|
331 |
|
332 |
+
return $dropin['PluginURI'] === $plugin['PluginURI'];
|
333 |
}
|
334 |
|
335 |
public function object_cache_dropin_outdated() {
|
340 |
$dropin = get_plugin_data( WP_CONTENT_DIR . '/object-cache.php' );
|
341 |
$plugin = get_plugin_data( WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php' );
|
342 |
|
343 |
+
if ( $dropin['PluginURI'] === $plugin['PluginURI'] ) {
|
344 |
+
return version_compare( $dropin['Version'], $plugin['Version'], '<' );
|
345 |
+
}
|
346 |
+
|
347 |
+
return false;
|
348 |
}
|
349 |
|
350 |
public function get_status() {
|
439 |
}
|
440 |
|
441 |
if ( $this->object_cache_dropin_exists() ) {
|
442 |
+
$url = $this->action_link( 'update-dropin' );
|
|
|
443 |
|
444 |
if ( $this->validate_object_cache_dropin() ) {
|
445 |
if ( $this->object_cache_dropin_outdated() ) {
|
510 |
}
|
511 |
|
512 |
if ( in_array( $action, $this->actions ) ) {
|
513 |
+
$url = $this->action_link( $action );
|
514 |
|
515 |
if ( $action === 'flush-cache' ) {
|
516 |
$message = wp_cache_flush() ? 'cache-flushed' : 'flush-cache-failed';
|
520 |
if ( $this->initialize_filesystem( $url, true ) ) {
|
521 |
switch ( $action ) {
|
522 |
case 'enable-cache':
|
523 |
+
$result = $wp_filesystem->copy(
|
524 |
+
WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php',
|
525 |
+
WP_CONTENT_DIR . '/object-cache.php',
|
526 |
+
true,
|
527 |
+
FS_CHMOD_FILE
|
528 |
+
);
|
529 |
do_action( 'redis_object_cache_enable', $result );
|
530 |
$message = $result ? 'cache-enabled' : 'enable-cache-failed';
|
531 |
break;
|
537 |
break;
|
538 |
|
539 |
case 'update-dropin':
|
540 |
+
$result = $wp_filesystem->copy(
|
541 |
+
WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php',
|
542 |
+
WP_CONTENT_DIR . '/object-cache.php',
|
543 |
+
true,
|
544 |
+
FS_CHMOD_FILE
|
545 |
+
);
|
546 |
do_action( 'redis_object_cache_update_dropin', $result );
|
547 |
$message = $result ? 'dropin-updated' : 'update-dropin-failed';
|
548 |
break;
|
780 |
return true;
|
781 |
}
|
782 |
|
783 |
+
public function maybe_update_dropin() {
|
784 |
+
if ( defined( 'WP_REDIS_DISABLE_DROPIN_AUTOUPDATE' ) && WP_REDIS_DISABLE_DROPIN_AUTOUPDATE ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
785 |
return;
|
786 |
}
|
787 |
|
788 |
+
if ( $this->object_cache_dropin_outdated() ) {
|
789 |
+
add_action( 'shutdown', [ $this, 'update_dropin' ] );
|
790 |
+
}
|
791 |
+
}
|
792 |
+
|
793 |
+
public function update_dropin() {
|
794 |
+
global $wp_filesystem;
|
795 |
+
|
796 |
if ( ! $this->validate_object_cache_dropin() ) {
|
797 |
return;
|
798 |
}
|
799 |
|
800 |
+
if ( $this->initialize_filesystem( '', true ) ) {
|
801 |
+
$result = $wp_filesystem->copy(
|
802 |
WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php',
|
803 |
WP_CONTENT_DIR . '/object-cache.php',
|
804 |
+
true,
|
805 |
+
FS_CHMOD_FILE
|
806 |
);
|
807 |
+
|
808 |
+
do_action( 'redis_object_cache_update_dropin', $result );
|
809 |
}
|
810 |
}
|
811 |
|
includes/cli/class-commands.php
CHANGED
@@ -31,29 +31,9 @@ class Commands extends WP_CLI_Command {
|
|
31 |
* wp redis status
|
32 |
*/
|
33 |
public function status() {
|
34 |
-
|
35 |
$plugin = Plugin::instance();
|
36 |
-
$status = $plugin->get_status();
|
37 |
-
$client = $plugin->get_redis_client_name();
|
38 |
-
|
39 |
-
switch ( $status ) {
|
40 |
-
case __( 'Disabled', 'redis-cache' ):
|
41 |
-
$status = WP_CLI::colorize( "%y{$status}%n" );
|
42 |
-
break;
|
43 |
-
case __( 'Connected', 'redis-cache' ):
|
44 |
-
$status = WP_CLI::colorize( "%g{$status}%n" );
|
45 |
-
break;
|
46 |
-
case __( 'Not Connected', 'redis-cache' ):
|
47 |
-
$status = WP_CLI::colorize( "%r{$status}%n" );
|
48 |
-
break;
|
49 |
-
}
|
50 |
-
|
51 |
-
WP_CLI::line( 'Status: ' . $status );
|
52 |
-
|
53 |
-
if ( ! is_null( $client ) ) {
|
54 |
-
WP_CLI::line( 'Client: ' . $client );
|
55 |
-
}
|
56 |
|
|
|
57 |
}
|
58 |
|
59 |
/**
|
@@ -83,7 +63,14 @@ class Commands extends WP_CLI_Command {
|
|
83 |
|
84 |
WP_Filesystem();
|
85 |
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
WP_CLI::success( __( 'Object cache enabled.', 'redis-cache' ) );
|
88 |
} else {
|
89 |
WP_CLI::error( __( 'Object cache could not be enabled.', 'redis-cache' ) );
|
@@ -149,7 +136,14 @@ class Commands extends WP_CLI_Command {
|
|
149 |
|
150 |
WP_Filesystem();
|
151 |
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
WP_CLI::success( __( 'Updated object cache drop-in and enabled Redis object cache.', 'redis-cache' ) );
|
154 |
} else {
|
155 |
WP_CLI::error( __( 'Object cache drop-in could not be updated.', 'redis-cache' ) );
|
31 |
* wp redis status
|
32 |
*/
|
33 |
public function status() {
|
|
|
34 |
$plugin = Plugin::instance();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
+
require_once __DIR__ . '/../ui/diagnostics.php';
|
37 |
}
|
38 |
|
39 |
/**
|
63 |
|
64 |
WP_Filesystem();
|
65 |
|
66 |
+
$copy = $wp_filesystem->copy(
|
67 |
+
WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php',
|
68 |
+
WP_CONTENT_DIR . '/object-cache.php',
|
69 |
+
true,
|
70 |
+
FS_CHMOD_FILE
|
71 |
+
);
|
72 |
+
|
73 |
+
if ( $copy ) {
|
74 |
WP_CLI::success( __( 'Object cache enabled.', 'redis-cache' ) );
|
75 |
} else {
|
76 |
WP_CLI::error( __( 'Object cache could not be enabled.', 'redis-cache' ) );
|
136 |
|
137 |
WP_Filesystem();
|
138 |
|
139 |
+
$copy = $wp_filesystem->copy(
|
140 |
+
WP_REDIS_PLUGIN_PATH . '/includes/object-cache.php',
|
141 |
+
WP_CONTENT_DIR . '/object-cache.php',
|
142 |
+
true,
|
143 |
+
FS_CHMOD_FILE
|
144 |
+
);
|
145 |
+
|
146 |
+
if ( $copy ) {
|
147 |
WP_CLI::success( __( 'Updated object cache drop-in and enabled Redis object cache.', 'redis-cache' ) );
|
148 |
} else {
|
149 |
WP_CLI::error( __( 'Object cache drop-in could not be updated.', 'redis-cache' ) );
|
includes/object-cache.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Redis Object Cache Drop-In
|
4 |
* Plugin URI: http://wordpress.org/plugins/redis-cache/
|
5 |
* Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Credis, HHVM, replication, clustering and WP-CLI.
|
6 |
-
* Version: 2.0.
|
7 |
* Author: Till Krüss
|
8 |
* Author URI: https://wprediscache.com
|
9 |
* License: GPLv3
|
3 |
* Plugin Name: Redis Object Cache Drop-In
|
4 |
* Plugin URI: http://wordpress.org/plugins/redis-cache/
|
5 |
* Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Credis, HHVM, replication, clustering and WP-CLI.
|
6 |
+
* Version: 2.0.4
|
7 |
* Author: Till Krüss
|
8 |
* Author URI: https://wprediscache.com
|
9 |
* License: GPLv3
|
includes/ui/diagnostics.php
CHANGED
@@ -10,12 +10,11 @@ defined( '\\ABSPATH' ) || exit;
|
|
10 |
global $wp_object_cache;
|
11 |
|
12 |
$info = [];
|
13 |
-
$
|
14 |
-
$dropin = $this->validate_object_cache_dropin();
|
15 |
$disabled = defined( 'WP_REDIS_DISABLED' ) && WP_REDIS_DISABLED;
|
16 |
|
17 |
-
$info['Status'] = $
|
18 |
-
$info['Client'] = $
|
19 |
$info['Drop-in'] = $dropin ? 'Valid' : 'Invalid';
|
20 |
$info['Disabled'] = $disabled ? 'Yes' : 'No';
|
21 |
|
@@ -45,7 +44,7 @@ if ( defined( 'HHVM_VERSION' ) ) {
|
|
45 |
$info['HHVM Version'] = HHVM_VERSION;
|
46 |
}
|
47 |
|
48 |
-
$info['Redis Version'] = $
|
49 |
|
50 |
$info['Multisite'] = is_multisite() ? 'Yes' : 'No';
|
51 |
|
@@ -80,7 +79,10 @@ $constants = array(
|
|
80 |
|
81 |
foreach ( $constants as $constant ) {
|
82 |
if ( defined( $constant ) ) {
|
83 |
-
$info[ $constant ] = wp_json_encode(
|
|
|
|
|
|
|
84 |
}
|
85 |
}
|
86 |
|
@@ -92,7 +94,7 @@ if ( defined( 'WP_REDIS_PASSWORD' ) ) {
|
|
92 |
$password[1] = str_repeat( '•', 8 );
|
93 |
}
|
94 |
|
95 |
-
$info['WP_REDIS_PASSWORD'] = wp_json_encode( $password );
|
96 |
} elseif ( ! is_null( $password ) && '' !== $password ) {
|
97 |
$info['WP_REDIS_PASSWORD'] = str_repeat( '•', 8 );
|
98 |
}
|
@@ -115,21 +117,21 @@ if ( $dropin ) {
|
|
115 |
);
|
116 |
}
|
117 |
|
118 |
-
|
119 |
-
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
120 |
-
echo "{$name}: {$value}\r\n";
|
121 |
-
}
|
122 |
|
123 |
foreach ( get_dropins() as $file => $details ) {
|
124 |
-
$dropins[ $file ] = sprintf(
|
125 |
-
' - %s v%s by %s',
|
126 |
-
$details['Name'],
|
127 |
-
$details['Version'],
|
128 |
-
$details['Author']
|
129 |
-
);
|
130 |
}
|
131 |
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
}
|
10 |
global $wp_object_cache;
|
11 |
|
12 |
$info = [];
|
13 |
+
$dropin = $plugin->validate_object_cache_dropin();
|
|
|
14 |
$disabled = defined( 'WP_REDIS_DISABLED' ) && WP_REDIS_DISABLED;
|
15 |
|
16 |
+
$info['Status'] = $plugin->get_status();
|
17 |
+
$info['Client'] = $plugin->get_redis_client_name();
|
18 |
$info['Drop-in'] = $dropin ? 'Valid' : 'Invalid';
|
19 |
$info['Disabled'] = $disabled ? 'Yes' : 'No';
|
20 |
|
44 |
$info['HHVM Version'] = HHVM_VERSION;
|
45 |
}
|
46 |
|
47 |
+
$info['Redis Version'] = $plugin->get_redis_version() ?: 'Unknown';
|
48 |
|
49 |
$info['Multisite'] = is_multisite() ? 'Yes' : 'No';
|
50 |
|
79 |
|
80 |
foreach ( $constants as $constant ) {
|
81 |
if ( defined( $constant ) ) {
|
82 |
+
$info[ $constant ] = wp_json_encode(
|
83 |
+
constant( $constant ),
|
84 |
+
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
|
85 |
+
);
|
86 |
}
|
87 |
}
|
88 |
|
94 |
$password[1] = str_repeat( '•', 8 );
|
95 |
}
|
96 |
|
97 |
+
$info['WP_REDIS_PASSWORD'] = wp_json_encode( $password, JSON_UNESCAPED_UNICODE );
|
98 |
} elseif ( ! is_null( $password ) && '' !== $password ) {
|
99 |
$info['WP_REDIS_PASSWORD'] = str_repeat( '•', 8 );
|
100 |
}
|
117 |
);
|
118 |
}
|
119 |
|
120 |
+
$dropins = [];
|
|
|
|
|
|
|
121 |
|
122 |
foreach ( get_dropins() as $file => $details ) {
|
123 |
+
$dropins[ $file ] = sprintf( '%s v%s by %s', $details['Name'], $details['Version'], $details['Author'] );
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
|
126 |
+
$info['Drop-ins'] = wp_json_encode(
|
127 |
+
array_values( $dropins ),
|
128 |
+
JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE
|
129 |
+
);
|
130 |
+
|
131 |
+
foreach ( $info as $name => $value ) {
|
132 |
+
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
133 |
+
WP_CLI::line( "{$name}: $value" );
|
134 |
+
} else {
|
135 |
+
echo "{$name}: {$value}\r\n";
|
136 |
+
}
|
137 |
}
|
includes/ui/tabs/diagnostics.php
CHANGED
@@ -7,6 +7,8 @@
|
|
7 |
|
8 |
defined( '\\ABSPATH' ) || exit;
|
9 |
|
|
|
|
|
10 |
?>
|
11 |
|
12 |
<p>
|
7 |
|
8 |
defined( '\\ABSPATH' ) || exit;
|
9 |
|
10 |
+
$plugin = $this;
|
11 |
+
|
12 |
?>
|
13 |
|
14 |
<p>
|
includes/ui/tabs/overview.php
CHANGED
@@ -162,16 +162,18 @@ $diagnostics = $roc->get_diagnostics();
|
|
162 |
</tr>
|
163 |
<?php endif; ?>
|
164 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
<?php if ( isset( $diagnostics['password'] ) ) : ?>
|
166 |
<tr>
|
167 |
<th><?php esc_html_e( 'Password:', 'redis-cache' ); ?></th>
|
168 |
<td>
|
169 |
-
<code>
|
170 |
-
<?php
|
171 |
-
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
172 |
-
echo str_repeat( '•', 8 );
|
173 |
-
?>
|
174 |
-
</code>
|
175 |
</td>
|
176 |
</tr>
|
177 |
<?php endif; ?>
|
162 |
</tr>
|
163 |
<?php endif; ?>
|
164 |
|
165 |
+
<?php if ( isset( $diagnostics['password'][0] ) ) : ?>
|
166 |
+
<tr>
|
167 |
+
<th><?php esc_html_e( 'Username:', 'redis-cache' ); ?></th>
|
168 |
+
<td><code><?php echo esc_html( $diagnostics['password'][0] ); ?></code></td>
|
169 |
+
</tr>
|
170 |
+
<?php endif; ?>
|
171 |
+
|
172 |
<?php if ( isset( $diagnostics['password'] ) ) : ?>
|
173 |
<tr>
|
174 |
<th><?php esc_html_e( 'Password:', 'redis-cache' ); ?></th>
|
175 |
<td>
|
176 |
+
<code><?php echo str_repeat( '•', 8 ); ?></code>
|
|
|
|
|
|
|
|
|
|
|
177 |
</td>
|
178 |
</tr>
|
179 |
<?php endif; ?>
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: redis, predis, phpredis, credis, hhvm, pecl, caching, cache, object cache,
|
|
5 |
Requires at least: 3.3
|
6 |
Tested up to: 5.4
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 2.0.
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
@@ -83,10 +83,19 @@ To see a list of all available WP-CLI commands, please see the [WP CLI commands
|
|
83 |
|
84 |
== Changelog ==
|
85 |
|
86 |
-
= 2.0.
|
87 |
|
88 |
Version 2.0 is a significant rewrite of the plugin. Please read the v2.0.0 release notes.
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
- Hide "Metrics" tab when metrics are disabled
|
91 |
- Fixed `admin.js` not loading in multisite environments
|
92 |
- Avoid fatal error when interacting with metrics but Redis went away
|
@@ -113,6 +122,8 @@ Version 2.0 is a significant rewrite. The plugin now requires PHP 5.6, just like
|
|
113 |
|
114 |
The GitHub and Composer repository was moved from `tillkruss/redis-cache` to `rhubarbgroup/redis-cache`.
|
115 |
|
|
|
|
|
116 |
- Require PHP 5.6
|
117 |
- Plugin is now "network-only"
|
118 |
- Switch to WPCS for code standards
|
@@ -389,7 +400,7 @@ Since Predis isn't maintained any longer, it's highly recommended to switch over
|
|
389 |
|
390 |
== Upgrade Notice ==
|
391 |
|
392 |
-
= 2.0.
|
393 |
|
394 |
Version 2.0 is a significant rewrite of the plugin. Please read the v2.0.0 release notes.
|
395 |
|
5 |
Requires at least: 3.3
|
6 |
Tested up to: 5.4
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 2.0.4
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
83 |
|
84 |
== Changelog ==
|
85 |
|
86 |
+
= 2.0.4 =
|
87 |
|
88 |
Version 2.0 is a significant rewrite of the plugin. Please read the v2.0.0 release notes.
|
89 |
|
90 |
+
- Attempt to reliably update the dropin when it's outdated
|
91 |
+
- Show ACL username on settings screen
|
92 |
+
- Show full diagnostics with `wp redis status`
|
93 |
+
- Always set `FS_CHMOD_FILE` when copying the `object-cache.php`
|
94 |
+
- Don't encode bullets in password diagnostics
|
95 |
+
- Call `redis_object_cache_update_dropin` during dropin update
|
96 |
+
|
97 |
+
= 2.0.3 =
|
98 |
+
|
99 |
- Hide "Metrics" tab when metrics are disabled
|
100 |
- Fixed `admin.js` not loading in multisite environments
|
101 |
- Avoid fatal error when interacting with metrics but Redis went away
|
122 |
|
123 |
The GitHub and Composer repository was moved from `tillkruss/redis-cache` to `rhubarbgroup/redis-cache`.
|
124 |
|
125 |
+
On multisite networks, be sure to "Network Activate" the plugin after upgrading to v2.x.
|
126 |
+
|
127 |
- Require PHP 5.6
|
128 |
- Plugin is now "network-only"
|
129 |
- Switch to WPCS for code standards
|
400 |
|
401 |
== Upgrade Notice ==
|
402 |
|
403 |
+
= 2.0.4 =
|
404 |
|
405 |
Version 2.0 is a significant rewrite of the plugin. Please read the v2.0.0 release notes.
|
406 |
|
redis-cache.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Redis Object Cache
|
4 |
* Plugin URI: https://wordpress.org/plugins/redis-cache/
|
5 |
* Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Credis, HHVM, replication, clustering and WP-CLI.
|
6 |
-
* Version: 2.0.
|
7 |
* Text Domain: redis-cache
|
8 |
* Domain Path: /languages
|
9 |
* Network: true
|
3 |
* Plugin Name: Redis Object Cache
|
4 |
* Plugin URI: https://wordpress.org/plugins/redis-cache/
|
5 |
* Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Credis, HHVM, replication, clustering and WP-CLI.
|
6 |
+
* Version: 2.0.4
|
7 |
* Text Domain: redis-cache
|
8 |
* Domain Path: /languages
|
9 |
* Network: true
|