예제 #1
0
 /**
  * @param $key
  * @param array $options
  * @throws ResourceFactoryException
  * @return Resource
  */
 public function create($key, array $options = array())
 {
     $project = $this->getProject($key);
     $name = $options['name'];
     $extension = $options['extension'];
     $filename = $name . ($extension !== false ? '.' . $extension : '');
     $resource = $this->em->getRepository('CDNServerCore:Resource')->findOneByProjectAndName($project->getId(), $name);
     if ($resource && !$options['update']) {
         throw new ResourceFactoryException("The resource " . $name . " already exists, either use another name or set the 'update' option to true.", 1);
     } else {
         if (!$resource) {
             $resource = new Resource($name, $filename, $project);
         } else {
             if ($resource->getFilename() !== $filename) {
                 $this->writer->remove($resource);
                 $resource->setFilename($filename);
             }
         }
     }
     $this->em->persist($resource);
     $this->em->flush($resource);
     return $resource;
 }
예제 #2
0
 protected function markForRefresh(Resource $resource, $status = true)
 {
     $resource->setRefresh($status);
     $this->em->persist($resource);
     $this->em->flush($resource);
 }