protected function copyFileToDefaults(ResourceDOInterface $resourceDO) { /** @var ResourceImageDO $resourceDO */ if (ResourceDO::DEFAULT_VARIANT !== $resourceDO->getVariant() && $this->config->get('staticus.magic_defaults.variant')) { $defaultDO = clone $resourceDO; $defaultDO->setVariant(); $defaultDO->setVersion(); $defaultDO->setWidth(); $defaultDO->setHeight(); $this->copyResource($resourceDO, $defaultDO); } if (ResourceDO::DEFAULT_VERSION !== $resourceDO->getVersion() && $this->config->get('staticus.magic_defaults.version')) { $defaultDO = clone $resourceDO; $defaultDO->setVersion(); $defaultDO->setWidth(); $defaultDO->setHeight(); $this->copyResource($resourceDO, $defaultDO); } if (ResourceImageDO::DEFAULT_DIMENSION !== $resourceDO->getDimension() && $this->config->get('staticus.magic_defaults.dimension')) { $defaultDO = clone $resourceDO; $defaultDO->setWidth(); $defaultDO->setHeight(); $this->copyResource($resourceDO, $defaultDO); } }
protected function getUri(ResourceDOInterface $resourceDO) { $uri = $resourceDO->getName() . '.' . $resourceDO->getType(); $query = []; if (ResourceDOInterface::DEFAULT_VARIANT !== $resourceDO->getVariant()) { $query['var'] = $resourceDO->getVariant(); } if (ResourceDOInterface::DEFAULT_NAME_ALTERNATIVE !== $resourceDO->getNameAlternative()) { $query['alt'] = $resourceDO->getNameAlternative(); } if (ResourceDOInterface::DEFAULT_VERSION !== $resourceDO->getVersion()) { $query['v'] = $resourceDO->getVersion(); } $query = http_build_query($query, null, '&', PHP_QUERY_RFC3986); // RFC for correct spaces if ($query) { $uri .= '?' . $query; } return $uri; }
/** * @param bool $byPathOnly If true, no search on disk will be executed * @return ResourceDOInterface */ public function __invoke($byPathOnly = false) { $uuid = $this->resourceDO->getUuid(); $type = $this->resourceDO->getType(); $variant = $this->resourceDO->getVariant(); $version = $this->resourceDO->getVersion(); $baseDir = $this->resourceDO->getBaseDirectory(); $namespace = $this->resourceDO->getNamespace(); $filePath = $this->resourceDO->getFilePath(); if (!$uuid || !$type || !$baseDir || !$filePath) { throw new CommandErrorException('Cannot destroy the empty resource'); } if ($byPathOnly) { $this->deleteFile($filePath); } else { $command = new FindResourceOptionsCommand($this->resourceDO, $this->filesystem); $result = $command(); foreach ($result as $item) { if ($item[ResourceDOAbstract::TOKEN_TYPE] !== $type || $item['filename'] !== $uuid || $namespace && $item[ResourceDOAbstract::TOKEN_NAMESPACE] !== $namespace) { continue; } if ($version !== ResourceDOInterface::DEFAULT_VERSION) { if ($variant === $item[ResourceDOAbstract::TOKEN_VARIANT] && $version === (int) $item[ResourceDOAbstract::TOKEN_VERSION]) { $this->deleteFile($item['path']); } } elseif ($variant !== ResourceDOInterface::DEFAULT_VARIANT) { if ($variant === $item[ResourceDOAbstract::TOKEN_VARIANT]) { $this->deleteFile($item['path']); } } else { $this->deleteFile($item['path']); } } } return $this->resourceDO; }
protected function copyFileToDefaults(ResourceDOInterface $resourceDO) { if (ResourceDO::DEFAULT_VARIANT !== $resourceDO->getVariant() && $this->config->get('staticus.magic_defaults.variant')) { $defaultDO = clone $resourceDO; $defaultDO->setVariant(); $defaultDO->setVersion(); $this->copyResource($resourceDO, $defaultDO); } if (ResourceDO::DEFAULT_VERSION !== $resourceDO->getVersion() && $this->config->get('staticus.magic_defaults.version')) { $defaultDO = clone $resourceDO; $defaultDO->setVersion(); $this->copyResource($resourceDO, $defaultDO); } }