UnableToCreateDirectory.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. declare(strict_types=1);
  3. namespace League\Flysystem;
  4. use RuntimeException;
  5. use Throwable;
  6. final class UnableToCreateDirectory extends RuntimeException implements FilesystemOperationFailed
  7. {
  8. /**
  9. * @var string
  10. */
  11. private $location;
  12. public static function atLocation(string $dirname, string $errorMessage = ''): UnableToCreateDirectory
  13. {
  14. $message = "Unable to create a directory at {$dirname}. ${errorMessage}";
  15. $e = new static(rtrim($message));
  16. $e->location = $dirname;
  17. return $e;
  18. }
  19. public static function dueToFailure(string $dirname, Throwable $previous): UnableToCreateDirectory
  20. {
  21. $message = "Unable to create a directory at {$dirname}";
  22. $e = new static($message, 0, $previous);
  23. $e->location = $dirname;
  24. return $e;
  25. }
  26. public function operation(): string
  27. {
  28. return FilesystemOperationFailed::OPERATION_CREATE_DIRECTORY;
  29. }
  30. public function location(): string
  31. {
  32. return $this->location;
  33. }
  34. }