Test Failed
Push — master ( eaa667...0d9623 )
by Evgenii
38:52
created

DatabaseBackupRestorer::execute()   A

Complexity

Conditions 5
Paths 4

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 13
c 1
b 0
f 0
nc 4
nop 0
dl 0
loc 20
rs 9.5222

1 Method

Rating   Name   Duplication   Size   Complexity  
A DatabaseBackupRestorer::backup() 0 3 1
1
<?php
2
3
4
namespace floor12\backup\logic;
5
6
7
use floor12\backup\logic\processors\DbProcessor;
8
use floor12\backup\logic\processors\MysqlProcessor;
9
use floor12\backup\logic\processors\PostgresProcessor;
10
use yii\base\Exception;
11
use yii\db\Connection;
12
13
class DatabaseBackupRestorer
14
{
15
    /**
16
     * @var array
17
     */
18
    protected $dbProcessors = [
19
        'mysql' => MysqlProcessor::class,
20
        'pgsql' => PostgresProcessor::class,
21
    ];
22
    /**
23
     * @var DbProcessor
24
     */
25
    protected $dbProcessor;
26
27
    /**
28
     * DatabaseBackupMaker constructor.
29
     * @param string $backupFilePath
30
     * @param Connection $connection
31
     * @throws Exception
32
     */
33
    public function __construct(string $backupFilePath, Connection $connection)
34
    {
35
        if (file_exists($backupFilePath))
36
            throw new Exception("Backup file exists.");
37
38
        $currentProcessorClassname = $this->dbProcessors[$connection->driverName];
39
        $this->dbProcessor = new $currentProcessorClassname($backupFilePath, $connection);
40
    }
41
42
    /**
43
     * @return bool
44
     * @throws \Exception
45
     */
46
    public function backup()
47
    {
48
        $this->dbProcessor->backup();
49
    }
50
}
51