SubjectsConfigProvider::__construct()   A
last analyzed

Complexity

Conditions 4
Paths 4

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 11
ccs 0
cts 11
cp 0
rs 9.2
cc 4
eloc 6
nc 4
nop 1
crap 20
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