Completed
Push — master ( 717b1b...de6dfe )
by Dmitry
06:37
created

Migration::run()   B

Complexity

Conditions 5
Paths 16

Size

Total Lines 35
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
dl 0
loc 35
ccs 0
cts 27
cp 0
rs 8.439
c 0
b 0
f 0
cc 5
eloc 21
nc 16
nop 2
crap 30
1
<?php
2
3
namespace Basis\Jobs\Generate;
4
5
use Basis\Framework;
6
use Basis\Filesystem;
7
8
/**
9
 * Generate tarantool migration
10
 */
11
class Migration
12
{
13
    public $name;
14
15
    public function run(Filesystem $filesystem, Framework $framework)
16
    {
17
        $time = time();
18
        $namespace = date('FY', $time);
19
20
        if(!is_array($this->name)) {
21
            $this->name = explode(' ', $this->name);
22
        }
23
24
        $class = '';
25
        foreach($this->name as $piece) {
26
            $class .= ucfirst($piece);
27
        }
28
29
        $template = $framework->getPath('resources/templates/migration.php');
30
31
        ob_start();
32
        include($template);
33
        $contents = ob_get_clean();
34
35
        $path = $filesystem->getPath('resources/migrations');
36
        if(!is_dir($path)) {
37
            mkdir($path);
38
        }
39
40
        $path = $filesystem->getPath('resources/migrations/'.date('Ym', $time));
41
        if(!is_dir($path)) {
42
            mkdir($path);
43
        }
44
45
        $filename = $path.'/'.$class.'.php';
46
        file_put_contents($filename, $contents);
47
48
        return compact('filename', 'namespace', 'class');
49
    }
50
}