MongoConfig   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 56
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A defaultDatabase() 0 4 1
A hasDatabase() 0 4 1
A databaseOptions() 0 4 1
A databaseNames() 0 4 1
1
<?php
2
/**
3
 * Spiral, Core Components
4
 *
5
 * @author Wolfy-J
6
 */
7
8
namespace Spiral\ODM\Configs;
9
10
use Spiral\Core\InjectableConfig;
11
use Spiral\Core\Traits\Config\AliasTrait;
12
13
class MongoConfig extends InjectableConfig
14
{
15
    use AliasTrait;
16
17
    /**
18
     * Configuration section.
19
     */
20
    const CONFIG = 'mongo';
21
22
    /**
23
     * @var array
24
     */
25
    protected $config = [
26
        'default'   => '',
27
        'aliases'   => [],
28
        'databases' => []
29
    ];
30
31
    /**
32
     * @return string
33
     */
34
    public function defaultDatabase(): string
35
    {
36
        return $this->config['default'];
37
    }
38
39
    /**
40
     * @param string $database
41
     *
42
     * @return bool
43
     */
44
    public function hasDatabase(string $database): bool
45
    {
46
        return isset($this->config['databases'][$database]);
47
    }
48
49
    /**
50
     * Database connection configuration.
51
     *
52
     * @param string $database
53
     *
54
     * @return array
55
     */
56
    public function databaseOptions(string $database): array
57
    {
58
        return $this->config['databases'][$database];
59
    }
60
61
    /**
62
     * @return array
63
     */
64
    public function databaseNames(): array
65
    {
66
        return array_keys($this->config['databases']);
67
    }
68
}