Passed
Push — master ( 668ff3...1f2ae2 )
by Yash
03:26
created

Backup::createBackup()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 20
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 10
nc 2
nop 0
1
<?php
2
3
namespace Webelightdev\LaravelDbBackup\BackupStorage;
4
5
class Backup
6
{
7
    protected $username;
8
    protected $password;
9
    protected $host;
10
    protected $database;
11
12
    public function __construct()
13
    {
14
        $this->username = config('dbbackup.database.username');
15
        $this->password = config('dbbackup.database.password');
16
        $this->host = config('dbbackup.database.host');
17
        $this->database = config('dbbackup.database.name');
18
    }
19
20
    public function createBackup()
21
    {
22
        $current_date = date('Y-m-d_H-i-s');
23
        $backup_file = $this->database.'_'.$current_date.'.sql.gz';
24
25
        // If mysqldump is on the system path you do not need to specify the full path
26
        $mysqldump = "mysqldump --databases --host=$this->host --user=$this->username ";
27
28
        if ($this->password) {
29
            $mysqldump .= '--password='.$this->password.' ';
30
        }
31
32
        $mysqldump .= $this->database;
33
        $mysqldump .= ' | gzip > '.$backup_file;
34
35
        // Execute command using system()
36
        system($mysqldump);
37
38
        return $backup_file;
39
    }
40
}
41