Installer::chmodRecursive()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 6
c 1
b 0
f 0
nc 2
nop 2
dl 0
loc 9
ccs 0
cts 7
cp 0
crap 6
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App;
6
7
use FilesystemIterator as FSIterator;
8
use RecursiveDirectoryIterator as DirIterator;
9
use RecursiveIteratorIterator as RIterator;
10
11
final class Installer
12
{
13
    /**
14
     * @psalm-suppress UndefinedClass
15
     */
16
    public static function postUpdate(): void
17
    {
18
        self::chmodRecursive('runtime', 0777);
19
        self::chmodRecursive('public/assets', 0777);
20
    }
21
22
    private static function chmodRecursive(string $path, int $mode): void
23
    {
24
        chmod($path, $mode);
25
        $iterator = new RIterator(
26
            new DirIterator($path, FSIterator::SKIP_DOTS | FSIterator::CURRENT_AS_PATHNAME),
27
            RIterator::SELF_FIRST
28
        );
29
        foreach ($iterator as $item) {
30
            chmod($item, $mode);
31
        }
32
    }
33
}
34