Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace League\Flysystem;
6
 
7
use RuntimeException;
8
use Throwable;
9
 
10
final class UnableToCreateDirectory extends RuntimeException implements FilesystemOperationFailed
11
{
12
    private string $location;
13
    private string $reason = '';
14
 
15
    public static function atLocation(string $dirname, string $errorMessage = '', ?Throwable $previous = null): UnableToCreateDirectory
16
    {
17
        $message = "Unable to create a directory at {$dirname}. {$errorMessage}";
18
        $e = new static(rtrim($message), 0, $previous);
19
        $e->location = $dirname;
20
        $e->reason = $errorMessage;
21
 
22
        return $e;
23
    }
24
 
25
    public static function dueToFailure(string $dirname, Throwable $previous): UnableToCreateDirectory
26
    {
27
        $reason = $previous instanceof UnableToCreateDirectory ? $previous->reason() : '';
28
        $message = "Unable to create a directory at $dirname. $reason";
29
        $e = new static(rtrim($message), 0, $previous);
30
        $e->location = $dirname;
31
        $e->reason = $reason ?: $message;
32
 
33
        return $e;
34
    }
35
 
36
    public function operation(): string
37
    {
38
        return FilesystemOperationFailed::OPERATION_CREATE_DIRECTORY;
39
    }
40
 
41
    public function reason(): string
42
    {
43
        return $this->reason;
44
    }
45
 
46
    public function location(): string
47
    {
48
        return $this->location;
49
    }
50
}