Esempio n. 1
0
 /**
  * Returns link for a version of a file
  *
  * @param  File   $file
  * @param  Version $version   Version identifier
  * @param  string $extension Extension
  * @return string Versioned link
  */
 public function getLink(File $file, Version $version, $extension)
 {
     $link = $this->getBaseLink($file);
     $pinfo = pathinfo($link);
     $link = $pinfo['dirname'] . '/' . $pinfo['filename'] . '-' . $version->toString();
     $link .= '.' . $extension;
     return $link;
 }
 /**
  * @param Versionable $versionable
  * @param Version $version
  * @return string
  */
 public function getPathVersion(Versionable $versionable, Version $version)
 {
     list($resource, $file) = $this->extractResourceAndFileFromVersionable($versionable);
     $path = $this->getPrefix();
     if ($file) {
         $path .= 'files/';
     } else {
         $path .= 'resources/';
     }
     $path .= $this->directoryCalculator->calculateDirectory($file ?: $resource) . '/' . $version->toString();
     $path .= '/' . ($file ? $file->getId() : $resource->getId());
     return $path;
 }
 /**
  * @param Version $version
  * @return Version
  * @throws InvalidVersionException
  */
 public function ensureValidVersion(Version $version)
 {
     $version = parent::ensureValidVersion($version);
     $unknownParams = array_map(function ($param) {
         return '\'' . $param . '\'';
     }, array_diff(array_keys($version->getParams()), call_user_func($this->allowedParamsGetter)));
     if (count($unknownParams)) {
         throw new InvalidVersionException(sprintf("Unknown version parameters: %s", implode(', ', $unknownParams)));
     }
     $unknownModifiers = array_map(function ($param) {
         return '\'' . $param . '\'';
     }, array_diff($version->getModifiers(), call_user_func($this->allowedModifiersGetter)));
     if (count($unknownModifiers)) {
         throw new InvalidVersionException(sprintf("Unknown version modifiers: %s", implode(', ', $unknownModifiers)));
     }
     $newParams = array_merge(call_user_func($this->defaultParamsGetter), $version->getParams());
     $version = new Version($version->getVersion(), $newParams, $version->getModifiers());
     $isValid = call_user_func_array($this->versionValidityChecker, array($version));
     if (!$isValid) {
         throw new InvalidVersionException(sprintf("Invalid version '%s'", $version->toString()));
     }
     return $version;
 }
 /**
  * @param File $file
  * @param Version $version
  * @param string $extension
  * @return string
  */
 public function getLink(File $file, Version $version, $extension)
 {
     $pinfo = pathinfo($this->getFileName($file));
     return $file->getDateCreated()->format($this->getFormat()) . '/' . $pinfo['filename'] . '-' . $version->toString() . '.' . $extension;
 }
Esempio n. 5
0
 /**
  * @test
  * @dataProvider provideVersionOptions
  */
 public function convertsToString($versionName, $options, $modifiers, $expected)
 {
     $version = new Version($versionName, $options, $modifiers);
     $this->assertEquals($expected, $version->toString());
 }
Esempio n. 6
0
 public function deleteVersion(Versionable $versionable, Version $version)
 {
     if (isset($this->retrievedVersions[get_class($versionable)][$versionable->getId()][$version->toString()])) {
         unset($this->retrievedVersions[get_class($versionable)][$versionable->getId()][$version->toString()]);
     }
 }
Esempio n. 7
0
 /**
  * Returns version provider for a file/version
  *
  * @param File $file
  * @param Version $version
  * @return VersionProvider
  * @throws InvalidVersionException
  */
 public function getVersionProvider(File $file, Version $version)
 {
     $versions = $this->getFileVersions($file);
     if (in_array($version->getVersion(), $versions)) {
         return $this->fileVersions[$version->getVersion()];
     }
     throw new InvalidVersionException(sprintf("File has no version '%s'", $version->toString()));
 }
Esempio n. 8
0
 /**
  * @param File $file
  * @param Version $version
  * @return bool
  */
 public function publishVersion(File $file, Version $version)
 {
     $event = new PublisherEvent($file, array($version->toString()));
     $this->eventDispatcher->dispatch(Events::FILE_BEFORE_PUBLISH, $event);
     if ($this->versionPublisher($file, $version)) {
         $this->fileRepository->update($file);
         $event = new PublisherEvent($file, array($version->toString()));
         $this->eventDispatcher->dispatch(Events::FILE_AFTER_PUBLISH, $event);
         return true;
     }
     return false;
 }
Esempio n. 9
0
 /**
  * @param File $file
  * @param Version $version
  * @return array
  */
 protected function doCreateTemporaryVersion(File $file, Version $version)
 {
     $retrieved = $this->storage->retrieve($file->getResource());
     $versionVersion = $this->versions[$version->getVersion()];
     return array($version->toString(), $versionVersion->getHelper($retrieved, $this->tempFiles)->execute());
 }
Esempio n. 10
0
 /**
  * Returns file extension for a version
  *
  * @param string $version
  */
 public function getExtension(File $file, Version $version)
 {
     if (preg_match("#thumbnail\$#", $version->toString())) {
         return 'png';
     }
     return $this->outputs[$version->toString()]['extension'];
 }
Esempio n. 11
0
 public function versionExists(Versionable $versionable, Version $version)
 {
     return isset($this->resources[$versionable->getId() . ';' . $version->toString()]);
 }