Passed
Push — master ( ff99dc...8a1a6a )
by Alexander
01:48 queued 13s
created

Filesystem::write()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 4
ccs 0
cts 4
cp 0
crap 2
rs 10
1
<?php
2
3
namespace Yiisoft\Yii\Filesystem;
4
5
use League\Flysystem\DirectoryListing;
6
use League\Flysystem\Filesystem as LeagueFilesystem;
7
use League\Flysystem\FilesystemAdapter;
8
use League\Flysystem\PathNormalizer;
9
use Yiisoft\Aliases\Aliases;
10
11
final class Filesystem extends LeagueFilesystem implements FilesystemInterface
12
{
13
    private Aliases $aliases;
14
15
    public function __construct(FilesystemAdapter $adapter, array $aliases = [], array $config = [], PathNormalizer $pathNormalizer = null)
16
    {
17
        $this->prepareAliases($aliases);
18
19
        parent::__construct($adapter, $config, $pathNormalizer);
20
    }
21
22
    public function fileExists(string $location): bool
23
    {
24
        $location = $this->aliases->get($location);
25
        return parent::fileExists($location);
26
    }
27
28
    public function write(string $location, string $contents, array $config = []): void
29
    {
30
        $location = $this->aliases->get($location);
31
        parent::write($location, $contents, $config);
32
    }
33
34
    public function writeStream(string $location, $contents, array $config = []): void
35
    {
36
        $location = $this->aliases->get($location);
37
        parent::writeStream($location, $contents, $config);
38
    }
39
40
    public function read(string $location): string
41
    {
42
        $location = $this->aliases->get($location);
43
        return parent::read($location);
44
    }
45
46
    public function readStream(string $location)
47
    {
48
        $location = $this->aliases->get($location);
49
        return parent::readStream($location);
50
    }
51
52
    public function delete(string $location): void
53
    {
54
        $location = $this->aliases->get($location);
55
        parent::delete($location);
56
    }
57
58
    public function createDirectory(string $location, array $config = []): void
59
    {
60
        $location = $this->aliases->get($location);
61
        parent::createDirectory($location, $config);
62
    }
63
64
    public function deleteDirectory(string $location): void
65
    {
66
        $location = $this->aliases->get($location);
67
        parent::deleteDirectory($location);
68
    }
69
70
    public function copy(string $source, string $destination, array $config = []): void
71
    {
72
        $source = $this->aliases->get($source);
73
        $destination = $this->aliases->get($destination);
74
        parent::copy($source, $destination, $config);
75
    }
76
77
    public function move(string $source, string $destination, array $config = []): void
78
    {
79
        $source = $this->aliases->get($source);
80
        $destination = $this->aliases->get($destination);
81
        parent::move($source, $destination, $config);
82
    }
83
84
    public function setVisibility(string $path, string $visibility): void
85
    {
86
        $path = $this->aliases->get($path);
87
        parent::setVisibility($path, $visibility);
88
    }
89
90
    public function visibility(string $path): string
91
    {
92
        $path = $this->aliases->get($path);
93
        return parent::visibility($path);
94
    }
95
96
    public function mimeType(string $path): string
97
    {
98
        $path = $this->aliases->get($path);
99
        return parent::mimeType($path);
100
    }
101
102
    public function lastModified(string $path): int
103
    {
104
        $path = $this->aliases->get($path);
105
        return parent::lastModified($path);
106
    }
107
108
    public function listContents(string $location, bool $deep = LeagueFilesystem::LIST_SHALLOW): DirectoryListing
109
    {
110
        $location = $this->aliases->get($location);
111
        return parent::listContents($location, $deep);
112
    }
113
114
    public function fileSize(string $path): int
115
    {
116
        $path = $this->aliases->get($path);
117
        return parent::fileSize($path);
118
    }
119
120
    private function prepareAliases(array $aliases): void
121
    {
122
        if ($aliases !== []) {
123
            $aliases = array_merge(['@root' => ''], $aliases);
124
            $aliases['@root'] = '';
125
        }
126
        $this->aliases = new Aliases($aliases);
127
    }
128
}
129