PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.8.2
Advanced Access Manager – Access Governance for WordPress v5.8.2
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / Application / Core / Object / Cache.php
advanced-access-manager / Application / Core / Object Last commit date
Cache.php 7 years ago Capability.php 7 years ago LoginRedirect.php 7 years ago LogoutRedirect.php 7 years ago Menu.php 7 years ago Metabox.php 7 years ago Policy.php 7 years ago Post.php 7 years ago Redirect.php 7 years ago Route.php 7 years ago Toolbar.php 7 years ago Uri.php 7 years ago Visibility.php 7 years ago
Cache.php
147 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * AAM cache object
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Object_Cache extends AAM_Core_Object {
17
18 /**
19 * Cache updated flag
20 *
21 * @var boolean
22 *
23 * @access protected
24 */
25 protected $updated = false;
26
27 /**
28 * Is cache enabled?
29 *
30 * @var boolean
31 *
32 * @access protected
33 */
34 protected $enabled = true;
35
36 /**
37 * Constructor
38 *
39 * @param AAM_Core_Subject $subject
40 *
41 * @return void
42 *
43 * @access public
44 */
45 public function __construct(AAM_Core_Subject $subject) {
46 parent::__construct($subject);
47
48 // Determine if cache is enabled
49 $action = AAM_Core_Request::request('action');
50 $triggers = array('edit', 'editpost');
51 $status = AAM_Core_Config::get('core.cache.status', 'enabled');
52
53 if (AAM::isAAM() || ($status !== 'enabled') || in_array($action, $triggers, true)) {
54 $this->enabled = false;
55 }
56
57 if ($this->enabled) {
58 // Register shutdown hook
59 register_shutdown_function(array($this, 'save'));
60
61 $this->reload();
62 }
63 }
64
65 /**
66 *
67 */
68 public function reload() {
69 // Just get the cache from current subject level. Do not trigger
70 // inheritance chain!
71 $this->setOption($this->getSubject()->readOption('cache'));
72 }
73
74 /**
75 *
76 * @param type $type
77 * @param type $id
78 * @param type $value
79 */
80 public function add($type, $id, $value) {
81 $option = $this->getOption();
82 $option[$type][$id] = $value;
83 $this->setOption($option);
84
85 $this->updated = true;
86 }
87
88 /**
89 * Get cache
90 *
91 * @param string $type
92 * @param string|int $id
93 * @param mixed $default
94 *
95 * @return mixed
96 *
97 * @access public
98 */
99 public function get($type, $id = 0, $default = array()) {
100 $option = $this->getOption();
101
102 return (isset($option[$type][$id]) ? $option[$type][$id] : $default);
103 }
104
105 /**
106 * Save cache
107 *
108 * @return bool
109 *
110 * @access public
111 */
112 public function save() {
113 if ($this->enabled && $this->updated) {
114 $this->getSubject()->updateOption($this->getOption(), 'cache');
115 }
116
117 return true;
118 }
119
120 /**
121 *
122 * @return type
123 */
124 public function reset() {
125 return $this->getSubject()->deleteOption('cache');
126 }
127
128 /**
129 * Read object from parent subject
130 *
131 * @return mixed
132 *
133 * @access public
134 */
135 public function inheritFromParent(){
136 $subject = $this->getParent();
137
138 if (is_a($subject, 'AAM_Core_Subject')){
139 $option = $subject->getObject('cache')->getOption();
140 } else {
141 $option = array();
142 }
143
144 return $option;
145 }
146
147 }