示例#1
0
 /**
  * Uploads a file
  *
  * @param  mixed            $upload Uploadable, path or object
  * @param  Folder           $folder
  * @return File
  * @throws FilelibException
  */
 public function upload($upload, Folder $folder = null, $profile = 'default')
 {
     if (!$upload instanceof FileUpload) {
         $upload = new FileUpload($upload);
     }
     if (!$folder) {
         $folder = $this->folderRepository->findRoot();
     }
     $event = new FolderEvent($folder);
     $this->eventDispatcher->dispatch(Events::FOLDER_BEFORE_WRITE_TO, $event);
     $profileObj = $this->profiles->getProfile($profile);
     $event = new FileUploadEvent($upload, $folder, $profileObj);
     $this->eventDispatcher->dispatch(Events::FILE_UPLOAD, $event);
     $upload = $event->getFileUpload();
     $file = File::create(array('folder_id' => $folder->getId(), 'name' => $upload->getUploadFilename(), 'profile' => $profile, 'date_created' => $upload->getDateUploaded(), 'uuid' => Uuid::uuid4()->toString()));
     $file->setStatus(File::STATUS_RAW);
     $resource = $this->resourceRepository->findResourceForUpload($file, $upload);
     $file->setResource($resource);
     $event = new FileEvent($file);
     $this->eventDispatcher->dispatch(Events::FILE_BEFORE_CREATE, $event);
     $this->backend->createFile($file, $folder);
     $event = new FileEvent($file);
     $this->eventDispatcher->dispatch(Events::FILE_AFTER_CREATE, $event);
     return $file;
 }
 /**
  * @test
  */
 public function updates()
 {
     $root = $this->op->findRoot();
     $folder = Folder::create(['name' => 'tussi', 'parent_id' => $root->getId()]);
     $folder2 = $this->op->create($folder);
     $this->assertSame($folder, $folder2);
     $this->op->update($folder);
     $this->ed->dispatch(Events::FOLDER_AFTER_UPDATE, Argument::type('Xi\\Filelib\\Event\\FolderEvent'))->shouldHaveBeenCalledTimes(1);
 }