PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / Cache / CacheHandler.php
backup / src / JetBackup / Cache Last commit date
.htaccess 1 year ago CacheHandler.php 1 year ago index.html 1 year ago web.config 1 year ago
CacheHandler.php
81 lines
1 <?php
2
3 namespace JetBackup\Cache;
4
5 if (!defined( '__JETBACKUP__')) die('Direct access is not allowed');
6
7 /**
8 * Always bypass Redis object cache and OPcache in the admin area for JetBackup specific plugin operations.
9 */
10 class CacheHandler {
11
12 private static bool $object_cache_enabled = false;
13
14 /**
15 * Check if object cache is enabled
16 *
17 * @return bool
18 */
19 public static function is_object_cache_enabled(): bool {
20 global $wp_object_cache;
21 return isset($wp_object_cache) && is_object($wp_object_cache);
22 }
23
24 /**
25 * Check if OPCache is enabled
26 *
27 * @return bool
28 */
29 public static function is_opcache_enabled(): bool {
30 return function_exists('opcache_get_status');
31 }
32
33 /**
34 * Disable object cache
35 */
36 public static function disable_object_cache() {
37 if (!self::is_object_cache_enabled()) return false;
38
39 add_filter('pre_wp_cache_get', '__return_false');
40 add_filter('pre_transient_*', '__return_false', 10, 2);
41 add_filter('pre_site_transient_*', '__return_false', 10, 2);
42 self::$object_cache_enabled = true;
43 }
44
45 /**
46 * Enable object cache
47 */
48 public static function enable_object_cache() {
49 if (!self::$object_cache_enabled) return;
50
51 remove_filter('pre_wp_cache_get', '__return_false');
52 remove_filter('pre_transient_*', '__return_false', 10, 2);
53 remove_filter('pre_site_transient_*', '__return_false', 10, 2);
54 self::$object_cache_enabled = false;
55 }
56
57 /**
58 * Disable OPCache
59 */
60 public static function disable_opcache() {
61 if (!self::is_opcache_enabled() || !function_exists('ini_set')) return;
62 ini_set('opcache.enable', 0);
63 }
64
65
66 /**
67 * Pre-cache operations: disable caches if they are enabled
68 */
69 public static function pre() {
70 if (self::is_object_cache_enabled()) self::disable_object_cache();
71 if (self::is_opcache_enabled()) self::disable_opcache();
72 }
73
74 /**
75 * Post-cache operations: re-enable caches if they were disabled
76 */
77 public static function post() {
78 self::enable_object_cache();
79 }
80
81 }