/
home
/
techb158
/
ileadtechnology.com
/
vendor
/
spatie
/
temporary-directory
/
src
/
/home/techb158/ileadtechnology.com/vendor/spatie/temporary-directory/src
mkdir
upload
Name
Size
Mode
Actions
TemporaryDirectory.php
4086
0644
edit
dl
rm
Edit:
/home/techb158/ileadtechnology.com/vendor/spatie/temporary-directory/src/TemporaryDirectory.php
(4086B)
<?php namespace Spatie\TemporaryDirectory; use Exception; use FilesystemIterator; use InvalidArgumentException; class TemporaryDirectory { /** @var string */ protected $location; /** @var string */ protected $name; /** @var bool */ protected $forceCreate = false; public function __construct(string $location = '') { $this->location = $this->sanitizePath($location); } public function create(): self { if (empty($this->location)) { $this->location = $this->getSystemTemporaryDirectory(); } if (empty($this->name)) { $this->name = mt_rand().'-'.str_replace([' ', '.'], '', microtime()); } if ($this->forceCreate && file_exists($this->getFullPath())) { $this->deleteDirectory($this->getFullPath()); } if (file_exists($this->getFullPath())) { throw new InvalidArgumentException("Path `{$this->getFullPath()}` already exists."); } mkdir($this->getFullPath(), 0777, true); return $this; } public function force(): self { $this->forceCreate = true; return $this; } public function name(string $name): self { $this->name = $this->sanitizeName($name); return $this; } public function location(string $location): self { $this->location = $this->sanitizePath($location); return $this; } public function path(string $pathOrFilename = ''): string { if (empty($pathOrFilename)) { return $this->getFullPath(); } $path = $this->getFullPath().DIRECTORY_SEPARATOR.trim($pathOrFilename, '/'); $directoryPath = $this->removeFilenameFromPath($path); if (! file_exists($directoryPath)) { mkdir($directoryPath, 0777, true); } return $path; } public function empty(): self { $this->deleteDirectory($this->getFullPath()); mkdir($this->getFullPath(), 0777, true); return $this; } public function delete(): bool { return $this->deleteDirectory($this->getFullPath()); } protected function getFullPath(): string { return $this->location.($this->name ? DIRECTORY_SEPARATOR.$this->name : ''); } protected function isValidDirectoryName(string $directoryName): bool { return strpbrk($directoryName, '\\/?%*:|"<>') === false; } protected function getSystemTemporaryDirectory(): string { return rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR); } protected function sanitizePath(string $path): string { $path = rtrim($path); return rtrim($path, DIRECTORY_SEPARATOR); } protected function sanitizeName(string $name): string { if (! $this->isValidDirectoryName($name)) { throw new Exception("The directory name `$name` contains invalid characters."); } return trim($name); } protected function removeFilenameFromPath(string $path): string { if (! $this->isFilePath($path)) { return $path; } return substr($path, 0, strrpos($path, DIRECTORY_SEPARATOR)); } protected function isFilePath(string $path): bool { return strpos($path, '.') !== false; } protected function deleteDirectory(string $path): bool { if (is_link($path)) { return unlink($path); } if (! file_exists($path)) { return true; } if (! is_dir($path)) { return unlink($path); } foreach (new FilesystemIterator($path) as $item) { if (! $this->deleteDirectory($item)) { return false; } } /* * By forcing a php garbage collection cycle using gc_collect_cycles() we can ensure * that the rmdir does not fail due to files still being reserved in memory. */ gc_collect_cycles(); return rmdir($path); } }
Save
cmd:
run