Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6866 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6749 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Cache;
6
 
6866 efrain 7
use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory;
8
 
9
 
6749 efrain 10
class CacheImpl implements CacheInterface
11
{
12
 
6898 efrain 13
    private $memcache;
6749 efrain 14
 
15
 
16
    /**
17
     *
18
     * @var int
19
     */
20
    private $ttl;
21
 
22
 
23
    /**
24
     *
25
     * @var string
26
     */
27
    private $host;
28
 
29
 
30
    /**
31
     *
32
     * @var int
33
     */
34
    private $port;
6866 efrain 35
 
6749 efrain 36
    /**
37
     *
38
     * @param Array $config
39
     */
6866 efrain 40
    public function __construct($config)
6749 efrain 41
    {
42
        $this->ttl    = intval($config['leaderslinked.memcache.ttl'], 10);
43
        $this->host   = strval($config['leaderslinked.memcache.host']);
44
        $this->port   = intval($config['leaderslinked.memcache.port'], 10);
45
 
46
 
47
        if(class_exists(\Memcached::class)) {
6898 efrain 48
            $this->memcache = new \Memcached();
49
            $this->memcache->addServer($this->host, $this->port);
6749 efrain 50
        } else  if(class_exists(\Memcache::class)) {
51
            $this->memcache = new \Memcache();
52
            $this->memcache->addserver($this->host, $this->port);
53
        }
54
 
55
    }
56
 
57
    /**
58
     *
59
     * @param string $key
60
     * @param mixed $value
61
     */
6849 efrain 62
    public function setItem($key, $value)
6749 efrain 63
    {
6898 efrain 64
        return $this->memcache->add($key, $value, $this->ttl);
6749 efrain 65
    }
66
 
67
    /**
68
     *
69
     * @param string $key
70
     * @return boolean
71
     */
72
    public function touch($key)
73
    {
6898 efrain 74
        return $this->memcache->touch($key, $this->ttl);
6749 efrain 75
    }
76
 
77
 
78
    /**
79
     *
80
     * @param string $key
81
     * @return boolean
82
     */
6849 efrain 83
    public function removeItem($key)
6749 efrain 84
    {
6898 efrain 85
        return $this->memcache->delete($key);
6749 efrain 86
    }
87
 
88
 
6849 efrain 89
 
6749 efrain 90
    /**
91
     *
92
     * @param string $key
6849 efrain 93
     * @return boolean
94
     */
95
    public function hasItem($key)
96
    {
6898 efrain 97
 
98
        $value = $this->memcache->get($key);
6849 efrain 99
        if($value === \Memcached::RES_NOTFOUND) {
100
            return false;
101
        } else {
102
            return true;
103
        }
104
    }
105
 
106
 
107
    /**
108
     *
109
     * @param string $key
6749 efrain 110
     * @return mixed
111
     */
6849 efrain 112
    public function getItem($key)
6749 efrain 113
    {
6898 efrain 114
 
115
 
116
        $value = $this->memcache->get($key);
6749 efrain 117
        if($value === \Memcached::RES_NOTFOUND) {
118
            return false;
119
        } else {
120
            return $value;
121
        }
122
    }
6898 efrain 123
 
124
 
125
    /**
126
     *
127
     * @return bool
128
     */
129
    public function available()
130
    {
131
        return $this->memcache ? true : false;
132
    }
6749 efrain 133
 
134
}
135
 
136
 
137