Passed
Push — main ( 738116...ff2d21 )
by Sílvio
02:52
created
src/CacheStore/RedisCacheStore.php 1 patch
Indentation   +187 added lines, -187 removed lines patch added patch discarded remove patch
@@ -16,93 +16,93 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class RedisCacheStore implements CacheerInterface
18 18
 {
19
-  /** @var */
20
-  private $redis;
19
+    /** @var */
20
+    private $redis;
21 21
 
22
-  /** @param string $namespace */
23
-  private string $namespace = '';
22
+    /** @param string $namespace */
23
+    private string $namespace = '';
24 24
 
25
-  /**
26
-  * @var CacheLogger
27
-  */
28
-  private $logger = null;
25
+    /**
26
+     * @var CacheLogger
27
+     */
28
+    private $logger = null;
29 29
 
30
-  /**
31
-  * @var string
32
-  */
33
-  private string $message = '';
30
+    /**
31
+     * @var string
32
+     */
33
+    private string $message = '';
34 34
 
35
-  /**
36
-  * @var boolean
37
-  */
38
-  private bool $success = false;
35
+    /**
36
+     * @var boolean
37
+     */
38
+    private bool $success = false;
39 39
 
40 40
 
41
-  /**
42
-  * @return void
43
-  */
44
-  public function __construct(string $logPath)
45
-  {
41
+    /**
42
+     * @return void
43
+     */
44
+    public function __construct(string $logPath)
45
+    {
46 46
     $this->redis = RedisCacheManager::connect();
47 47
     $this->logger = new CacheLogger($logPath);
48
-  }
49
-
50
-  /**
51
-  * @param string $cacheKey
52
-  * @param string $namespace
53
-  * @param string|int $ttl
54
-  * @return mixed
55
-  */
56
-  public function getCache(string $cacheKey, string $namespace = '', string|int $ttl = 3600)
57
-  {
48
+    }
49
+
50
+    /**
51
+     * @param string $cacheKey
52
+     * @param string $namespace
53
+     * @param string|int $ttl
54
+     * @return mixed
55
+     */
56
+    public function getCache(string $cacheKey, string $namespace = '', string|int $ttl = 3600)
57
+    {
58 58
     $fullCacheKey = $this->buildKey($cacheKey, $namespace);
59 59
     $cacheData = $this->redis->get($fullCacheKey);
60 60
 
61 61
     if($cacheData) {
62
-      $this->setMessage("Cache retrieved successfully", true);
63
-      $this->logger->debug("{$this->getMessage()} from redis driver.");
64
-      return CacheRedisHelper::serialize($cacheData, false);
62
+        $this->setMessage("Cache retrieved successfully", true);
63
+        $this->logger->debug("{$this->getMessage()} from redis driver.");
64
+        return CacheRedisHelper::serialize($cacheData, false);
65 65
     }
66 66
 
67 67
     $this->setMessage("CacheData not found, does not exists or expired", false);
68 68
     $this->logger->info("{$this->getMessage()} from redis driver.");
69
-  }
70
-
71
-  /**
72
-  * Armazena um item no cache Redis, com suporte a namespace e TTL opcional.
73
-  *
74
-  * @param string $cacheKey
75
-  * @param mixed  $cacheData
76
-  * @param string $namespace
77
-  * @param string|int|null $ttl
78
-  * @return mixed
79
-  */
80
-  public function putCache(string $cacheKey, mixed $cacheData, string $namespace = '', string|int|null $ttl = null)
81
-  {
82
-      $cacheFullKey = $this->buildKey($cacheKey, $namespace);
83
-      $serializedData = CacheRedisHelper::serialize($cacheData);
84
-
85
-      $result = $ttl ? $this->redis->setex($cacheFullKey, (int) $ttl, $serializedData) 
69
+    }
70
+
71
+    /**
72
+     * Armazena um item no cache Redis, com suporte a namespace e TTL opcional.
73
+     *
74
+     * @param string $cacheKey
75
+     * @param mixed  $cacheData
76
+     * @param string $namespace
77
+     * @param string|int|null $ttl
78
+     * @return mixed
79
+     */
80
+    public function putCache(string $cacheKey, mixed $cacheData, string $namespace = '', string|int|null $ttl = null)
81
+    {
82
+        $cacheFullKey = $this->buildKey($cacheKey, $namespace);
83
+        $serializedData = CacheRedisHelper::serialize($cacheData);
84
+
85
+        $result = $ttl ? $this->redis->setex($cacheFullKey, (int) $ttl, $serializedData) 
86 86
                     : $this->redis->set($cacheFullKey, $serializedData);
87 87
 
88
-      if ($result) {
89
-          $this->setMessage("Cache stored successfully", true);
90
-      } else {
91
-          $this->setMessage("Failed to store cache", false);
92
-      }
88
+        if ($result) {
89
+            $this->setMessage("Cache stored successfully", true);
90
+        } else {
91
+            $this->setMessage("Failed to store cache", false);
92
+        }
93 93
 
94
-      $this->logger->debug("{$this->getMessage()} from Redis driver.");
95
-      return $result;
96
-  }
94
+        $this->logger->debug("{$this->getMessage()} from Redis driver.");
95
+        return $result;
96
+    }
97 97
 
98 98
 
99
-  /**
100
-  * @param string $cacheKey
101
-  * @param string $namespace
102
-  * @return void
103
-  */
104
-  public function clearCache(string $cacheKey, string $namespace = '')
105
-  {
99
+    /**
100
+     * @param string $cacheKey
101
+     * @param string $namespace
102
+     * @return void
103
+     */
104
+    public function clearCache(string $cacheKey, string $namespace = '')
105
+    {
106 106
     $cacheFullKey = $this->buildKey($cacheKey, $namespace);
107 107
 
108 108
 
@@ -114,107 +114,107 @@  discard block
 block discarded – undo
114 114
 
115 115
 
116 116
     $this->logger->debug("{$this->getMessage()} from redis driver.");
117
-  }
118
-
119
-  /**
120
-  * @param string $cacheKey
121
-  * @param string $namespace
122
-  * @return void
123
-  */
124
-  public function has(string $cacheKey, string $namespace = '')
125
-  {
117
+    }
118
+
119
+    /**
120
+     * @param string $cacheKey
121
+     * @param string $namespace
122
+     * @return void
123
+     */
124
+    public function has(string $cacheKey, string $namespace = '')
125
+    {
126 126
     $cacheFullKey = $this->buildKey($cacheKey, $namespace);
127 127
 
128 128
     if($this->redis->exists($cacheFullKey) > 0) {
129 129
         $this->setMessage("Cache Key: {$cacheKey} exists!", true);
130 130
     } else {
131 131
         $this->setMessage("Cache Key: {$cacheKey} does not exists!", false);
132
-      }
132
+        }
133 133
 
134 134
     $this->logger->debug("{$this->getMessage()} from redis driver.");
135
-  }
136
-
137
-  /**
138
-  * @param string $cacheKey
139
-  * @param string|int $ttl
140
-  * @param string $namespace
141
-  * @return void
142
-  */
143
-  public function renewCache(string $cacheKey, string|int $ttl, string $namespace = '')
144
-  {
145
-      $cacheFullKey = $this->buildKey($cacheKey, $namespace);
146
-      $dump = $this->getDump($cacheFullKey);
147
-
148
-      if (!$dump) {
149
-          $this->setMessage("Cache Key: {$cacheKey} not found.", false);
150
-          $this->logger->warning("{$this->getMessage()} from Redis driver.");
151
-          return;
152
-      }
153
-
154
-      $this->clearCache($cacheFullKey);
155
-
156
-      if ($this->restoreKey($cacheFullKey, $ttl, $dump)) {
157
-          $this->setMessage("Cache Key: {$cacheKey} renewed successfully.", true);
158
-          $this->logger->debug("{$this->getMessage()} from Redis driver.");
159
-      } else {
160
-          $this->setMessage("Failed to renew cache key: {$cacheKey}.", false);
161
-          $this->logger->error("{$this->getMessage()} from Redis driver.");
162
-      }
163
-  }
164
-
165
-
166
-  /**
167
-  * @param string $cacheKey
168
-  * @param mixed  $cacheData
169
-  * @param string $namespace
170
-  * @return void
171
-  */
172
-  public function appendCache(string $cacheKey, mixed $cacheData, string $namespace = '')
173
-  {
174
-      $cacheFullKey = $this->buildKey($cacheKey, $namespace);
175
-      $existingData = $this->getCache($cacheFullKey);
176
-
177
-      $mergedCacheData = CacheRedisHelper::arrayIdentifier($existingData, $cacheData);
178
-
179
-      $serializedData = CacheRedisHelper::serialize($mergedCacheData);
180
-
181
-      if ($this->redis->set($cacheFullKey, $serializedData)) {
182
-          $this->setMessage("Cache appended successfully", true);
183
-      } else {
184
-          $this->setMessage("Something went wrong. Please, try again.", false);
185
-      }
135
+    }
136
+
137
+    /**
138
+     * @param string $cacheKey
139
+     * @param string|int $ttl
140
+     * @param string $namespace
141
+     * @return void
142
+     */
143
+    public function renewCache(string $cacheKey, string|int $ttl, string $namespace = '')
144
+    {
145
+        $cacheFullKey = $this->buildKey($cacheKey, $namespace);
146
+        $dump = $this->getDump($cacheFullKey);
147
+
148
+        if (!$dump) {
149
+            $this->setMessage("Cache Key: {$cacheKey} not found.", false);
150
+            $this->logger->warning("{$this->getMessage()} from Redis driver.");
151
+            return;
152
+        }
153
+
154
+        $this->clearCache($cacheFullKey);
155
+
156
+        if ($this->restoreKey($cacheFullKey, $ttl, $dump)) {
157
+            $this->setMessage("Cache Key: {$cacheKey} renewed successfully.", true);
158
+            $this->logger->debug("{$this->getMessage()} from Redis driver.");
159
+        } else {
160
+            $this->setMessage("Failed to renew cache key: {$cacheKey}.", false);
161
+            $this->logger->error("{$this->getMessage()} from Redis driver.");
162
+        }
163
+    }
164
+
165
+
166
+    /**
167
+     * @param string $cacheKey
168
+     * @param mixed  $cacheData
169
+     * @param string $namespace
170
+     * @return void
171
+     */
172
+    public function appendCache(string $cacheKey, mixed $cacheData, string $namespace = '')
173
+    {
174
+        $cacheFullKey = $this->buildKey($cacheKey, $namespace);
175
+        $existingData = $this->getCache($cacheFullKey);
176
+
177
+        $mergedCacheData = CacheRedisHelper::arrayIdentifier($existingData, $cacheData);
178
+
179
+        $serializedData = CacheRedisHelper::serialize($mergedCacheData);
180
+
181
+        if ($this->redis->set($cacheFullKey, $serializedData)) {
182
+            $this->setMessage("Cache appended successfully", true);
183
+        } else {
184
+            $this->setMessage("Something went wrong. Please, try again.", false);
185
+        }
186 186
 
187 187
   
188
-      $this->logger->debug("{$this->getMessage()} from redis driver.");
189
-  }
188
+        $this->logger->debug("{$this->getMessage()} from redis driver.");
189
+    }
190 190
 
191 191
 
192
-  /**
193
-  * @param array  $items
194
-  * @param string $namespace
195
-  * @param int    $batchSize
196
-  * @return void
197
-  */
198
-  public function putMany(array $items, string $namespace = '', int $batchSize = 100)
199
-  {
200
-      $processedCount = 0;
201
-      $itemCount = count($items);
192
+    /**
193
+     * @param array  $items
194
+     * @param string $namespace
195
+     * @param int    $batchSize
196
+     * @return void
197
+     */
198
+    public function putMany(array $items, string $namespace = '', int $batchSize = 100)
199
+    {
200
+        $processedCount = 0;
201
+        $itemCount = count($items);
202 202
 
203
-      while($processedCount < $itemCount)
204
-      {
203
+        while($processedCount < $itemCount)
204
+        {
205 205
 
206 206
         $batchItems = array_slice($items, $processedCount, $batchSize);
207 207
         $this->processBatchItems($batchItems, $namespace);
208 208
         $processedCount += count($batchItems);
209
-      }
209
+        }
210 210
 
211
-  }
211
+    }
212 212
 
213
-  /**
214
-  * @return void
215
-  */
216
-  public function flushCache()
217
-  {
213
+    /**
214
+     * @return void
215
+     */
216
+    public function flushCache()
217
+    {
218 218
   
219 219
     if($this->redis->flushall()) {
220 220
         $this->setMessage("Cache flushed successfully", true);
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
     }
224 224
 
225 225
     $this->logger->debug("{$this->getMessage()} from redis driver.");
226
-  }
226
+    }
227 227
 
228 228
     /**
229 229
      * @return string
@@ -241,17 +241,17 @@  discard block
 block discarded – undo
241 241
         return $this->success;
242 242
     }
243 243
 
244
-  /**
245
-  * @param string $key
246
-  * @param string $namespace
247
-  * @return string
248
-  */
249
-  private function buildKey(string $key, string $namespace)
250
-  {
244
+    /**
245
+     * @param string $key
246
+     * @param string $namespace
247
+     * @return string
248
+     */
249
+    private function buildKey(string $key, string $namespace)
250
+    {
251 251
     return $this->namespace . ($namespace ? $namespace . ':' : '') . $key;
252
-  }
252
+    }
253 253
 
254
-  /**
254
+    /**
255 255
      * @param string  $message
256 256
      * @param boolean $success
257 257
      * @return void
@@ -263,10 +263,10 @@  discard block
 block discarded – undo
263 263
     }
264 264
 
265 265
         /**
266
-     * @param array  $batchItems
267
-     * @param string $namespace
268
-     * @return void
269
-     */
266
+         * @param array  $batchItems
267
+         * @param string $namespace
268
+         * @return void
269
+         */
270 270
     private function processBatchItems(array $batchItems, string $namespace)
271 271
     {
272 272
         foreach($batchItems as $item) {
@@ -278,29 +278,29 @@  discard block
 block discarded – undo
278 278
         }
279 279
     }
280 280
 
281
-      /**
282
-  * @param string $fullKey
283
-  * @return string|null
284
-  */
285
-  private function getDump(string $fullKey)
286
-  {
287
-      return $this->redis->dump($fullKey);
288
-  }
289
-
290
-
291
-  /**
292
-  * @param string $fullKey
293
-  * @param string|int $ttl
294
-  * @param mixed $dump
295
-  * @return bool
296
-  */
297
-  private function restoreKey(string $fullKey, string|int $ttl, mixed $dump)
298
-  {
299
-      try {
300
-          $this->redis->restore($fullKey, $ttl * 1000, $dump, 'REPLACE');
301
-          return true;
302
-      } catch (Exception $e) {
303
-          throw CacheRedisException::create($e->getMessage());
304
-      }
305
-  }
281
+        /**
282
+         * @param string $fullKey
283
+         * @return string|null
284
+         */
285
+    private function getDump(string $fullKey)
286
+    {
287
+        return $this->redis->dump($fullKey);
288
+    }
289
+
290
+
291
+    /**
292
+     * @param string $fullKey
293
+     * @param string|int $ttl
294
+     * @param mixed $dump
295
+     * @return bool
296
+     */
297
+    private function restoreKey(string $fullKey, string|int $ttl, mixed $dump)
298
+    {
299
+        try {
300
+            $this->redis->restore($fullKey, $ttl * 1000, $dump, 'REPLACE');
301
+            return true;
302
+        } catch (Exception $e) {
303
+            throw CacheRedisException::create($e->getMessage());
304
+        }
305
+    }
306 306
 }
Please login to merge, or discard this patch.
src/Helpers/CacheRedisHelper.php 1 patch
Indentation   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -12,20 +12,20 @@  discard block
 block discarded – undo
12 12
 class CacheRedisHelper
13 13
 {
14 14
 
15
-  /**
16
-  * @param mixed $data
17
-  * @param bool  $serialize
18
-  * @return mixed
19
-  */
20
-  public static function serialize(mixed $data, bool $serialize = true)
21
-  {
15
+    /**
16
+     * @param mixed $data
17
+     * @param bool  $serialize
18
+     * @return mixed
19
+     */
20
+    public static function serialize(mixed $data, bool $serialize = true)
21
+    {
22 22
     if($serialize) {
23
-      return serialize($data);
23
+        return serialize($data);
24 24
     }
25 25
 
26 26
     return unserialize($data);
27 27
 
28
-  }
28
+    }
29 29
 
30 30
     /**
31 31
      * @param array $item
@@ -54,63 +54,63 @@  discard block
 block discarded – undo
54 54
         return (array)$cacheData;
55 55
     }
56 56
 
57
-  /**
58
-    * @param mixed $currentCacheData
59
-    * @param mixed $cacheData
60
-    * @return array
61
-    */
62
-  public static function arrayIdentifier(mixed $currentCacheData, mixed $cacheData)
63
-  {
64
-      /**
65
-      * Se ambos forem arrays, mescle-os de forma recursiva para preservar subarrays
66
-      */
67
-      if (is_array($currentCacheData) && is_array($cacheData)) {
68
-          return self::mergeRecursive($currentCacheData, $cacheData);
69
-      }
70
-
71
-      /** 
72
-      * Se $currentCacheData não for um array, inicialize-o como um array vazio
73
-      */
74
-      if (!is_array($currentCacheData)) {
75
-          $currentCacheData = [];
76
-      }
77
-
78
-      /**
79
-      * Se $cacheData não for um array, converta-o em um array
80
-      */
81
-      if (!is_array($cacheData)) {
82
-          $cacheData = [$cacheData];
83
-      }
84
-
85
-      return array_merge($currentCacheData, $cacheData);
86
-  }
87
-
88
-  /**
89
-    * Mescla arrays de forma recursiva.
90
-    * @param array $array1
91
-    * @param array $array2
92
-    * @return array
93
-    */
94
-  private static function mergeRecursive(array $array1, array $array2)
95
-  {
96
-      foreach ($array2 as $key => $value) {
97
-
98
-          /**
99
-          * Se a chave existe em ambos os arrays e ambos os valores são arrays, mescle recursivamente
100
-          */
101
-          if (isset($array1[$key]) && is_array($array1[$key]) && is_array($value)) {
102
-              $array1[$key] = self::mergeRecursive($array1[$key], $value);
103
-          } else {
104
-
105
-              /**
106
-              * Caso contrário, sobrescreva o valor em $array1 com o valor de $array2
107
-              */
108
-              $array1[$key] = $value;
109
-          }
110
-      }
111
-
112
-      return $array1;
113
-  }
57
+    /**
58
+     * @param mixed $currentCacheData
59
+     * @param mixed $cacheData
60
+     * @return array
61
+     */
62
+    public static function arrayIdentifier(mixed $currentCacheData, mixed $cacheData)
63
+    {
64
+        /**
65
+         * Se ambos forem arrays, mescle-os de forma recursiva para preservar subarrays
66
+         */
67
+        if (is_array($currentCacheData) && is_array($cacheData)) {
68
+            return self::mergeRecursive($currentCacheData, $cacheData);
69
+        }
70
+
71
+        /** 
72
+         * Se $currentCacheData não for um array, inicialize-o como um array vazio
73
+         */
74
+        if (!is_array($currentCacheData)) {
75
+            $currentCacheData = [];
76
+        }
77
+
78
+        /**
79
+         * Se $cacheData não for um array, converta-o em um array
80
+         */
81
+        if (!is_array($cacheData)) {
82
+            $cacheData = [$cacheData];
83
+        }
84
+
85
+        return array_merge($currentCacheData, $cacheData);
86
+    }
87
+
88
+    /**
89
+     * Mescla arrays de forma recursiva.
90
+     * @param array $array1
91
+     * @param array $array2
92
+     * @return array
93
+     */
94
+    private static function mergeRecursive(array $array1, array $array2)
95
+    {
96
+        foreach ($array2 as $key => $value) {
97
+
98
+            /**
99
+             * Se a chave existe em ambos os arrays e ambos os valores são arrays, mescle recursivamente
100
+             */
101
+            if (isset($array1[$key]) && is_array($array1[$key]) && is_array($value)) {
102
+                $array1[$key] = self::mergeRecursive($array1[$key], $value);
103
+            } else {
104
+
105
+                /**
106
+                 * Caso contrário, sobrescreva o valor em $array1 com o valor de $array2
107
+                 */
108
+                $array1[$key] = $value;
109
+            }
110
+        }
111
+
112
+        return $array1;
113
+    }
114 114
 
115 115
 }
116 116
 
Please login to merge, or discard this patch.