示例#1
0
 /**
  * Handle the command.
  *
  * @param FolderRepositoryInterface $folders
  * @return FolderInterface|bool
  */
 public function handle(FolderRepositoryInterface $folders)
 {
     $folder = $folders->findBySlug($this->directory->getPath(), $this->getFilesystemDisk());
     if ($folder && $folders->delete($folder)) {
         return $folder;
     }
     return true;
 }
 /**
  * Sync a file.
  *
  * @param Directory     $resource
  * @param DiskInterface $disk
  * @return null|FolderInterface
  */
 public function sync(Directory $resource, DiskInterface $disk)
 {
     $path = $resource->getPath();
     if ($path === '.') {
         return null;
     }
     if (!($folder = $this->folders->findBySlug($path))) {
         $folder = $this->folders->create(['name' => $path, 'disk_id' => $disk->getId()]);
     }
     return $folder;
 }
 /**
  * Sync a file.
  *
  * @param Directory     $resource
  * @param DiskInterface $disk
  * @return null|FolderInterface
  */
 public function sync(Directory $resource, DiskInterface $disk)
 {
     $path = $resource->getPath();
     if ($path === '.') {
         return null;
     }
     /* @var FolderInterface|null $parent */
     $parent = null;
     $folder = null;
     foreach (explode('/', $path) as $name) {
         if (!($folder = $this->folders->findByName($name, $disk, $parent))) {
             $folder = $this->folders->create(['name' => $name, 'disk_id' => $disk->getId(), 'parent_id' => $parent ? $parent->getId() : null]);
         }
         $parent = $folder;
     }
     return $folder;
 }