FileTrait   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 23
c 1
b 1
f 0
dl 0
loc 54
rs 10
wmc 8

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createTestFiles() 0 18 4
A removeDirectoryRecursive() 0 22 4
1
<?php declare(strict_types=1);
2
3
namespace Janisbiz\LightOrm\Tests\Unit\Generator\Writer;
4
5
trait FileTrait
6
{
7
    /**
8
     * @param string $directory
9
     */
10
    protected function removeDirectoryRecursive($directory)
11
    {
12
        if (\is_dir($directory)) {
13
            $recursiveDirectoryIterator = new \RecursiveDirectoryIterator(
14
                $directory,
15
                \RecursiveDirectoryIterator::SKIP_DOTS
16
            );
17
18
            $files = new \RecursiveIteratorIterator(
19
                $recursiveDirectoryIterator,
20
                \RecursiveIteratorIterator::CHILD_FIRST
21
            );
22
23
            foreach ($files as $file) {
24
                if ($file->isDir()) {
25
                    \rmdir($file->getRealPath());
26
                } else {
27
                    \unlink($file->getRealPath());
28
                }
29
            }
30
31
            \rmdir($directory);
32
        }
33
    }
34
35
    /**
36
     * @param array $fileNames
37
     * @param string $fileDirectory
38
     *
39
     * @return array
40
     */
41
    protected function createTestFiles(array $fileNames, $fileDirectory)
42
    {
43
        if (!\file_exists($fileDirectory)) {
44
            \mkdir($fileDirectory, 0777, true);
45
        }
46
47
        $files = [];
48
        foreach ($fileNames as $fileName) {
49
            $files[] = sprintf('%s/%s', \rtrim($fileDirectory, '/'), $fileName);
50
        }
51
52
        foreach ($files as $file) {
53
            \file_put_contents($file, '');
54
        }
55
56
        \sort($files);
57
58
        return $files;
59
    }
60
}
61