Example #1
0
 public function createFile(Project $project, $fileName, $program = false)
 {
     // Check that fileName does not exist already
     $file = $this->getProjectFile($project, $fileName, $program);
     if ($file) {
         // fileName exists: check that file is deleted
         if (!$file->getDeleted()) {
             // file  is not deleted: return false
             return false;
         }
         // reuse previously deleted file
         $file->setVersion($file->getVersion() + 1);
     } else {
         // Create file
         $file = new File();
     }
     $file->setProject($project);
     $file->setName($fileName);
     $file->setProgram($program);
     $file->setDeleted(false);
     // create storage file
     $storage = $this->getNewStorageName($project);
     $file->setStorageName($storage);
     $this->em->persist($file);
     // Update log
     $entry = new Log();
     $entry->setProject($project);
     $entry->setOperation("create");
     $entry->setData(json_encode(array('name' => $file->getName(), 'program' => $program)));
     $entry->setUser($this->user);
     $this->em->persist($entry);
     $this->em->flush();
     return $file;
 }