Code Duplication    Length = 33-33 lines in 2 locations

src/FileSystem/Directory.php 1 location

@@ 5-37 (lines=33) @@
2
3
namespace Gitilicious\GitClient\FileSystem;
4
5
class Directory
6
{
7
    private $path;
8
9
    public function __construct(string $path)
10
    {
11
        if (!is_dir($path)) {
12
            throw new NotFoundException(sprintf('The directory `%s` does not exist.', $path));
13
        }
14
15
        $this->path = $path;
16
    }
17
18
    public static function create(string $path, int $permissions = 0770): Directory
19
    {
20
        if (is_dir($path)) {
21
            throw new ExistsException(sprintf('The directory `%s` already exists.', $path));
22
        }
23
24
        @mkdir($path, $permissions, true);
25
26
        if (!is_dir($path)) {
27
            throw new PermissionDeniedException(error_get_last()['message'], error_get_last()['type']);
28
        }
29
30
        return new self($path);
31
    }
32
33
    public function getPath(): string
34
    {
35
        return $this->path;
36
    }
37
}
38

src/FileSystem/File.php 1 location

@@ 5-37 (lines=33) @@
2
3
namespace Gitilicious\GitClient\FileSystem;
4
5
class File
6
{
7
    private $path;
8
9
    public function __construct(string $path)
10
    {
11
        if (!is_file($path)) {
12
            throw new NotFoundException(sprintf('The file `%s` does not exist.', $path));
13
        }
14
15
        $this->path = $path;
16
    }
17
18
    public static function create(string $path, string $content): File
19
    {
20
        if (is_file($path)) {
21
            throw new ExistsException(sprintf('The file `%s` already exists.', $path));
22
        }
23
24
        @file_put_contents($path, $content);
25
26
        if (!is_file($path)) {
27
            throw new PermissionDeniedException(error_get_last()['message'], error_get_last()['type']);
28
        }
29
30
        return new self($path);
31
    }
32
33
    public function getPath(): string
34
    {
35
        return $this->path;
36
    }
37
}
38