Passed
Push — drivers ( 5f8646...aadeb1 )
by Joe
01:53
created

ArrayDriver::exists()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
namespace PhpWinTools\WmiScripting\Support\Cache;
4
5
use Illuminate\Support\Arr;
6
use Psr\SimpleCache\CacheInterface;
7
8
class ArrayDriver extends CacheDriver implements CacheInterface
9
{
10
    protected $store = [];
11
12
    public function get($key, $default = null)
13
    {
14
        return Arr::get($this->store, $this->validateKey($key), $default);
15
    }
16
17
    public function set($key, $value, $ttl = null)
18
    {
19
        return is_array(Arr::set($this->store, $this->validateKey($key), $value));
20
    }
21
22
    public function delete($key)
23
    {
24
        if ($this->has($key)) {
25
            Arr::forget($this->store, $key);
26
            return true;
27
        }
28
29
        return false;
30
    }
31
32
    public function clear()
33
    {
34
        $this->store = [];
35
36
        return true;
37
    }
38
39
    public function getMultiple($keys, $default = null)
40
    {
41
        $result = [];
42
43
        foreach ($keys as $key) {
44
            $result[$key] = $this->get($key, $default);
45
        }
46
47
        return $result;
48
    }
49
50
    public function setMultiple($values, $ttl = null)
51
    {
52
        foreach ($values as $key => $value) {
53
            $this->set($key, $value, $ttl);
54
        }
55
56
        return true;
57
    }
58
59
    public function deleteMultiple($keys)
60
    {
61
        foreach ($keys as $key) {
62
            if ($this->delete($key)) {
63
                continue;
64
            } else {
65
                return false;
66
            }
67
        }
68
69
        return true;
70
    }
71
72
    public function has($key)
73
    {
74
        return Arr::has($this->store, $this->validateKey($key));
75
    }
76
}
77