1: <?php
2: namespace Opencart\System\Library\Cache;
3: /**
4: * Class Memcached
5: *
6: * @package Opencart\System\Library\Cache
7: */
8: class Memcached {
9: /**
10: * @var \Memcached
11: */
12: private \Memcached $memcached;
13: /**
14: * @var int
15: */
16: private int $expire;
17:
18: public const CACHEDUMP_LIMIT = 9999;
19:
20: /**
21: * Constructor
22: *
23: * @param int $expire
24: */
25: public function __construct(int $expire = 3600) {
26: $this->expire = $expire;
27:
28: $this->memcached = new \Memcached();
29: $this->memcached->addServer(CACHE_HOSTNAME, CACHE_PORT);
30: }
31:
32: /**
33: * Get
34: *
35: * @param string $key
36: *
37: * @return mixed
38: */
39: public function get(string $key) {
40: return $this->memcached->get(CACHE_PREFIX . $key);
41: }
42:
43: /**
44: * Set
45: *
46: * @param string $key
47: * @param mixed $value
48: * @param int $expire
49: *
50: * @return void
51: */
52: public function set(string $key, $value, int $expire = 0): void {
53: if (!$expire) {
54: $expire = $this->expire;
55: }
56:
57: $this->memcached->set(CACHE_PREFIX . $key, $value, $expire);
58: }
59:
60: /**
61: * Delete
62: *
63: * @param string $key
64: *
65: * @return void
66: */
67: public function delete(string $key): void {
68: $this->memcached->delete(CACHE_PREFIX . $key);
69: }
70: }
71: