/** * @param FolderInterface $folder * @param FolderInterface $parent * @return array */ public function getValidateFolderResult(FolderInterface $folder, FolderInterface $parent) { $check = array('Child folder name not specified' => !$folder->getName(), 'Child folder path not specified' => !$folder->getPath(), 'Child folder created time not specified' => !$folder->getCreatedTime(), 'Parent folder name not specified' => !$parent->getName(), 'Parent folder path not specified' => !$parent->getPath(), 'Parent folder created time not specified' => !$parent->getCreatedTime()); if ($folder->getPath()) { $key = 'Folder with a path ' . $folder->getPath() . ' has been already created'; $check[$key] = $this->folderExists($folder->getPath()); } return $check; }
/** * Create the specified folder. * I dont understand why this exists with the provided $folder. Surely if we want to * create a folder we should be calling the $folders constructor or one of its static * creation methods? * @param FolderInterface $folder - the folder to be created? * @param FolderInterface $parent - the folder the new folder will be within. * * @return FolderInterface - the newly created folder. */ public function createFolder(FolderInterface $folder, FolderInterface $parent) { $gridFs = ConnectionHandler::getInstance()->getConnection(); $parentMongoFolder = MongoFolder::loadFromFolderInterface($parent); if ($folder->getCreatedTime() === null) { $folder->setCreatedTime(time()); } $metadata = array('name' => $folder->getName(), 'path' => $parent->getPath() . '/' . $parent->getName(), 'creation_time' => $folder->getCreatedTime(), 'parent' => $parentMongoFolder->getMongoId(), 'type' => 'folder'); print "creating folder with details: " . print_r($metadata, true); $gridFs->storeBytes("", $metadata); # folder is an empty file with metadata $mongoFolder = MongoFolder::loadFromFolderInterface($folder); return $mongoFolder; }