/** * Invalidates any cached files. * * @param UploadedFile $file The file to invalidate */ public function invalidate(UploadedFile $file) { /** * @var EntityManager */ $entityManager = $this->container->get('doctrine')->getManager(); $queryBuilder = $entityManager->createQueryBuilder(); $queryBuilder->select(['c'])->from('PartKeepr\\ImageBundle\\Entity\\CachedImage', 'c')->where('c.originalId = :id')->andWhere('c.originalType = :type')->setParameter('id', $file->getId())->setParameter('type', $file->getType()); $query = $queryBuilder->getQuery(); foreach ($query->getResult() as $file) { /** * @var CachedImage */ if (file_exists($file->getCacheFile())) { unlink($file->getCacheFile()); } $entityManager->remove($file); } }
/** * Creates a new cache entry for a specific image. * * @param UploadedFile $image The image to cache * @param string $cacheFile The file which holds the cached image */ public function __construct(UploadedFile $image, $cacheFile) { $this->originalId = (int) $image->getId(); $this->originalType = $image->getType(); $this->cacheFile = $cacheFile; }
/** * @param UploadedFile $file * * @return Filesystem */ public function getStorage(UploadedFile $file) { $type = strtolower($file->getType()); return $this->container->get("filesystem_" . $type); }