Completed
Pull Request — master (#2)
by Pedro
01:50
created

Config   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 80.95%

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 8
c 3
b 0
f 1
lcom 0
cbo 1
dl 0
loc 64
ccs 17
cts 21
cp 0.8095
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
B __construct() 0 19 5
A getAdapterName() 0 4 1
A getSettings() 0 4 1
A getAdapterNamespace() 0 4 1
1
<?php
2
3
namespace Pcelta\Doctrine\Cache\Entity;
4
5
use Pcelta\Doctrine\Cache\Exception\InvalidCacheConfig;
6
7
class Config
8
{
9
    /**
10
     * @var string
11
     */
12
    private $adapterName;
13
14
    /**
15
     * @var string
16
     */
17
    private $adapterNamespace = '\Doctrine\Common\Cache\%sCache';
18
19
    /**
20
     * @var array
21
     */
22
    private $settings = [];
23
24
    /**
25
     * @param array $config
26
     */
27
    public function __construct(array $config)
28
    {
29
        if (!isset($config['adapter_name']) || !is_string($config['adapter_name'])) {
30
            throw new InvalidCacheConfig('Invalid Adapter Name. Is Not A String OR Is Missing!');
31
        }
32
        $this->adapterName = $config['adapter_name'];
33
34
35
        unset($config['adapter_name']);
36
        $this->settings = $config;
37 9
38
        if (isset($config['adapter_namespace'])) {
39 9
            if (!is_string($config['adapter_namespace'])) {
40 1
                throw new InvalidCacheConfig('Invalid Adapter Namespace. Is Not A String!');
41
            }
42 8
43
            $this->adapterNamespace = $config['adapter_namespace'];
44 8
        }
45 1
    }
46
47 7
    /**
48
     * @return string
49 7
     */
50 2
    public function getAdapterName()
51
    {
52
        return $this->adapterName;
53 5
    }
54 1
55
    /**
56 4
     * @return array
57
     */
58 4
    public function getSettings()
59 1
    {
60
        return $this->settings;
61 3
    }
62
63 3
    /**
64
     * @return string
65
     */
66
    public function getAdapterNamespace()
67
    {
68
        return $this->adapterNamespace;
69
    }
70
}
71