Passed
Branch master (e090ea)
by kacper
04:22
created

ConfigFactory   A

Complexity

Total Complexity 19

Size/Duplication

Total Lines 80
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 19
lcom 0
cbo 1
dl 0
loc 80
ccs 0
cts 72
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
F makeConfigFromArray() 0 73 19
1
<?php
2
3
namespace MySQLReplication\Config;
4
5
/**
6
 * Class ConfigService
7
 * @package MySQLReplication\Config
8
 */
9
class ConfigFactory
10
{
11
    /**
12
     * @param array $config
13
     * @return Config
14
     */
15
    public function makeConfigFromArray(array $config)
16
    {
17
        $configBuilder = new ConfigBuilder();
18
        foreach ($config as $k => $v)
19
        {
20
            if ('user' === $k)
21
            {
22
                $configBuilder->withUser($v);
23
            }
24
            if ('ip' === $k || 'host' === $k)
25
            {
26
                $configBuilder->withHost($v);
27
            }
28
            if ('port' === $k)
29
            {
30
                $configBuilder->withPort($v);
31
            }
32
            if ('password' === $k)
33
            {
34
                $configBuilder->withPassword($v);
35
            }
36
            if ('charset' === $k)
37
            {
38
                $configBuilder->withCharset($v);
39
            }
40
            if ('gtid' === $k)
41
            {
42
                $configBuilder->withGtid($v);
43
            }
44
            if ('slaveId' === $k)
45
            {
46
                $configBuilder->withSlaveId($v);
47
            }
48
            if ('binLogFileName' === $k)
49
            {
50
                $configBuilder->withBinLogFileName($v);
51
            }
52
            if ('binLogPosition' === $k)
53
            {
54
                $configBuilder->withBinLogPosition($v);
55
            }
56
            if ('eventsOnly' === $k)
57
            {
58
                $configBuilder->withEventsOnly($v);
59
            }
60
            if ('eventsIgnore' === $k)
61
            {
62
                $configBuilder->withEventsIgnore($v);
63
            }
64
            if ('tablesOnly' === $k)
65
            {
66
                $configBuilder->withTablesOnly($v);
67
            }
68
            if ('databasesOnly' === $k)
69
            {
70
                $configBuilder->withDatabasesOnly($v);
71
            }
72
            if ('mariaDbGtid' === $k)
73
            {
74
                $configBuilder->withMariaDbGtid($v);
75
            }
76
            if ('tableCacheSize' === $k)
77
            {
78
                $configBuilder->withTableCacheSize($v);
79
            }
80
            if ('custom' === $k)
81
            {
82
                $configBuilder->withCustom($v);
83
            }
84
        }
85
86
        return $configBuilder->build();
87
    }
88
}