Completed
Push — master ( bbe544...1bc078 )
by ReliQ
03:23 queued 11s
created

Open   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 40
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getVocabularyDirectories() 0 3 1
A load() 0 3 1
A get() 0 14 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ReliqArts\DirectTranslator\ConfigProvider;
6
7
use ReliqArts\DirectTranslator\ConfigProvider as ConfigProviderContract;
8
9
class Open implements ConfigProviderContract
10
{
11
    /**
12
     * @var array
13
     */
14
    private $config;
15
16
    /**
17
     * @param string $configFilePath
18
     */
19
    public function load(string $configFilePath = self::CONFIG_FILE_PATH)
20
    {
21
        $this->config = require $configFilePath;
22
    }
23
24
    /**
25
     * {@inheritdoc}
26
     */
27
    public function get(string $key, $default = null)
28
    {
29
        $segments = explode('.', $key);
30
        $data = $this->config;
31
32
        foreach ($segments as $segment) {
33
            if (empty($data[$segment])) {
34
                return $default;
35
            }
36
37
            $data = $data[$segment];
38
        }
39
40
        return $data;
41
    }
42
43
    /**
44
     * @return array
45
     */
46
    public function getVocabularyDirectories(): array
47
    {
48
        return $this->get('vocabulary_directories', []);
49
    }
50
}
51