コード例 #1
0
 /**
  * @param FileProcessingService $fileProcessingService
  * @param DriverInterface $driver
  * @param ProcessedFile $processedFile
  * @param File $file
  * @param $taskType
  * @param array $configuration
  */
 public function optimizeImage(FileProcessingService $fileProcessingService, DriverInterface $driver, ProcessedFile $processedFile, File $file, $taskType, array $configuration = [])
 {
     if ($processedFile->getType() !== AbstractFile::FILETYPE_IMAGE) {
         return;
     }
     $optimizedProcessedFile = $this->processedFileRepository->findOneByOriginalFileAndTaskTypeAndConfiguration($file, $this->getTaskTypeForExtension($processedFile->getExtension()), $configuration);
     if (!$optimizedProcessedFile->isProcessed()) {
         $this->process($optimizedProcessedFile, $processedFile);
     }
     // This is a hack because we can not return the optimized file
     if ($optimizedProcessedFile->isProcessed() && $optimizedProcessedFile->getIdentifier() !== '') {
         ObjectAccess::setProperty($processedFile, 'name', $optimizedProcessedFile->getName(), TRUE);
         ObjectAccess::setProperty($processedFile, 'identifier', $optimizedProcessedFile->getIdentifier(), TRUE);
         $properties = $processedFile->getProperties();
         $properties['width'] = $optimizedProcessedFile->getProperty('width');
         $properties['height'] = $optimizedProcessedFile->getProperty('height');
         ObjectAccess::setProperty($processedFile, 'properties', $properties, TRUE);
     }
 }