1 <?php namespace BookStack\Services;
3 use Illuminate\Contracts\Filesystem\Factory as FileSystem;
4 use Illuminate\Contracts\Filesystem\Filesystem as FileSystemInstance;
12 protected $fileSystem;
15 * @var FileSystemInstance
17 protected $storageInstance;
21 * FileService constructor.
24 public function __construct(FileSystem $fileSystem)
26 $this->fileSystem = $fileSystem;
30 * Get the storage that will be used for storing images.
31 * @return FileSystemInstance
33 protected function getStorage()
35 if ($this->storageInstance !== null) return $this->storageInstance;
37 $storageType = config('filesystems.default');
38 $this->storageInstance = $this->fileSystem->disk($storageType);
40 return $this->storageInstance;
45 * Check whether or not a folder is empty.
49 protected function isFolderEmpty($path)
51 $files = $this->getStorage()->files($path);
52 $folders = $this->getStorage()->directories($path);
53 return (count($files) === 0 && count($folders) === 0);
57 * Check if using a local filesystem.
60 protected function isLocal()
62 return strtolower(config('filesystems.default')) === 'local';