1: | <?php |
2: | /** |
3: | * @package OpenCart |
4: | * |
5: | * @author Daniel Kerr |
6: | * @copyright Copyright (c) 2005 - 2022, OpenCart, Ltd. (https://www.opencart.com/) |
7: | * @license https://opensource.org/licenses/GPL-3.0 |
8: | * |
9: | * @see https://www.opencart.com |
10: | */ |
11: | namespace Opencart\System\Library; |
12: | /** |
13: | * Class Cache |
14: | */ |
15: | class Cache { |
16: | /** |
17: | * @var object |
18: | */ |
19: | private object $adaptor; |
20: | |
21: | /** |
22: | * Constructor |
23: | * |
24: | * @param string $adaptor the type of storage for the cache |
25: | * @param int $expire Optional parameters |
26: | */ |
27: | public function __construct(string $adaptor, int $expire = 3600) { |
28: | $class = 'Opencart\System\Library\Cache\\' . $adaptor; |
29: | |
30: | if (class_exists($class)) { |
31: | $this->adaptor = new $class($expire); |
32: | } else { |
33: | throw new \Exception('Error: Could not load cache adaptor ' . $adaptor . ' cache!'); |
34: | } |
35: | } |
36: | |
37: | /** |
38: | * Get |
39: | * |
40: | * Gets a cache by key name. |
41: | * |
42: | * @param string $key The cache key name |
43: | * |
44: | * @return mixed |
45: | */ |
46: | public function get(string $key) { |
47: | return $this->adaptor->get($key); |
48: | } |
49: | |
50: | /** |
51: | * Set |
52: | * |
53: | * Sets a cache by key value. |
54: | * |
55: | * @param string $key The cache key |
56: | * @param mixed $value The cache value |
57: | * @param int $expire The cache expiry |
58: | * |
59: | * @return void |
60: | */ |
61: | public function set(string $key, $value, int $expire = 0): void { |
62: | $this->adaptor->set($key, $value, $expire); |
63: | } |
64: | |
65: | /** |
66: | * Delete |
67: | * |
68: | * Deletes a cache by key name. |
69: | * |
70: | * @param string $key The cache key |
71: | * |
72: | * @return void |
73: | */ |
74: | public function delete(string $key): void { |
75: | $this->adaptor->delete($key); |
76: | } |
77: | } |
78: |