PluginProbe
JetBackup – Backup, Restore & Migrate / 3.1.21.3
JetBackup – Backup, Restore & Migrate v3.1.21.3
3.1.23.6 3.1.23.5 3.1.23.3 3.1.22.4 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 All 82 releases
backup / src / JetBackup / Cache / CacheHandler.php

CacheHandler.php in JetBackup – Backup, Restore & Migrate 3.1.21.3, at src/JetBackup/Cache/CacheHandler.php

81 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }