Completed
Push — master ( fadc66...9ff9d7 )
by Dmitry
03:15
created

Migration::run()   B

Complexity

Conditions 5
Paths 16

Size

Total Lines 35
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 7.6996

Importance

Changes 0
Metric Value
dl 0
loc 35
ccs 11
cts 21
cp 0.5238
rs 8.439
c 0
b 0
f 0
cc 5
eloc 21
nc 16
nop 2
crap 7.6996
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 1
    public function run(Filesystem $filesystem, Framework $framework)
16
    {
17 1
        $time = time();
18 1
        $namespace = date('FY', $time);
19
20 1
        if(!is_array($this->name)) {
21 1
            $this->name = explode(' ', $this->name);
22
        }
23
24 1
        $class = '';
25 1
        foreach($this->name as $piece) {
26 1
            $class .= ucfirst($piece);
27
        }
28
29 1
        $template = $framework->getPath('resources/templates/migration.php');
30
31 1
        ob_start();
32 1
        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
}