AbstractMediaParameterBag   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 1
dl 0
loc 76
ccs 22
cts 22
cp 1
rs 10
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getExtra() 0 4 1
A setExtra() 0 4 1
A addExtra() 0 4 1
A hasExtra() 0 4 1
A removeExtra() 0 4 1
A setDefaults() 0 4 1
A toArray() 0 6 1
1
<?php
2
3
namespace MediaMonks\SonataMediaBundle\ParameterBag;
4
5
use MediaMonks\SonataMediaBundle\Model\MediaInterface;
6
7
abstract class AbstractMediaParameterBag implements ParameterBagInterface
8
{
9
    /**
10
     * @var array
11
     */
12
    protected $extra = [];
13
14
    /**
15
     * @param array $extra
16
     */
17 23
    public function __construct(array $extra = [])
18
    {
19 23
        $this->extra = $extra;
20 23
    }
21
22
    /**
23
     * @return array
24
     */
25 18
    public function getExtra()
26
    {
27 18
        return $this->extra;
28
    }
29
30
    /**
31
     * @param array $extra
32
     */
33 2
    public function setExtra($extra)
34
    {
35 2
        $this->extra = $extra;
36 2
    }
37
38
    /**
39
     * @param $key
40
     * @param $value
41
     */
42 11
    public function addExtra($key, $value)
43
    {
44 11
        $this->extra[$key] = $value;
45 11
    }
46
47
    /**
48
     * @param $key
49
     * @return bool
50
     */
51 9
    public function hasExtra($key)
52
    {
53 9
        return isset($this->extra[$key]);
54
    }
55
56
    /**
57
     * @param $key
58
     */
59 10
    public function removeExtra($key)
60
    {
61 10
        unset($this->extra[$key]);
62 10
    }
63
64
    /**
65
     * @param array $defaults
66
     */
67 7
    public function setDefaults(array $defaults)
68
    {
69 7
        $this->extra = array_merge($defaults, $this->extra);
70 7
    }
71
72
    /**
73
     * @param MediaInterface $media
74
     * @return array
75
     */
76 16
    public function toArray(MediaInterface $media)
77
    {
78 16
        return array_merge($this->getExtra(), [
79 16
            'id' => $media->getId()
80
        ]);
81
    }
82
}
83