/** * Set the name of resource using the context and resource mapping information * * @param ResourceObjectInterface $resource * @param string $baseName default name * @param object $context context to resolve tokens */ protected function setResourceName(ResourceObjectInterface $resource, $baseName = null, $context = null) { if ($baseName) { if (strpos($baseName, $resource->getFile()->guessExtension()) === false) { $filename = $baseName . '.' . $resource->getFile()->guessExtension(); } else { $filename = $baseName; } } else { if ($resource->getId()) { $filename = $resource->getName(); } else { //create unique name $filename = sha1(uniqid(mt_rand(), true)) . '.' . $resource->getFile()->guessExtension(); } } $mapping = $this->getResourceMapping($this->config, $resource); if (isset($mapping['name'])) { $filename = $this->parseName($mapping['name'], $context, $baseName); $filename .= '.' . $resource->getFile()->guessExtension(); $resource->setName($filename); $filename = basename($filename); } $resource->setName($filename); }
/** * @inheritdoc */ public function deleteFile(ResourceObjectInterface $resource) { $path = $this->getLocationConfig('path', $resource->getLocation(), $this->config); if ($resource->getRelativePath()) { $path .= $resource->getRelativePath(); } $oldFile = $path . DIRECTORY_SEPARATOR . $resource->getName(); $this->fileSystem->remove($oldFile); return !$this->fileSystem->exists($oldFile); }