SubjectsConfigProvider   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 0%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 4
A getByType() 0 14 4
1
<?php
2
3
namespace IncidentBundle\Provider;
4
5
/**
6
 * Class SubjectsConfigProvider
7
 */
8
class SubjectsConfigProvider
9
{
10
    /**
11
     * @var array
12
     */
13
    private $subjects = [];
14
15
    /**
16
     * SubjectsConfigProvider constructor.
17
     *
18
     * @param array $subjectsConfig
19
     */
20
    public function __construct($subjectsConfig)
21
    {
22
        foreach ($subjectsConfig as $subjectsType => $subjectsByTypeArray) {
23
            if (is_array($subjectsByTypeArray)) {
24
                foreach ($subjectsByTypeArray as $subjectId => $subjectItem) {
25
                    $this->subjects[$subjectId] = $subjectItem;
26
                    $this->subjects[$subjectId]['type'] = $subjectsType;
27
                }
28
            }
29
        }
30
    }
31
32
    /**
33
     * @param string $subjectsType
34
     *
35
     * @return array
36
     */
37
    public function getByType($subjectsType)
38
    {
39
        $retSubjects = [];
40
41
        foreach ($this->subjects as $subjectId => $subjectItem) {
42
            if (!isset($subjectItem['type']) || $subjectItem['type'] != $subjectsType) {
43
                continue;
44
            }
45
46
            $retSubjects[$subjectId] = $subjectItem;
47
        }
48
49
        return $retSubjects;
50
    }
51
}
52