/** * Extract archive * * @param \Symfony\Component\HttpFoundation\File\File $file * @param \Thelia\Core\Archiver\ArchiverInterface $archiver * * @return \Symfony\Component\HttpFoundation\File\File First file in unarchiver */ public function extractArchive(File $file, ArchiverInterface $archiver) { $archiver->open($file->getPathname()); $extractpath = dirname($archiver->getArchivePath()) . DS . uniqid(); $archiver->extract($extractpath); /** @var \DirectoryIterator $item */ foreach (new \DirectoryIterator($extractpath) as $item) { if (!$item->isDot() && $item->isFile()) { $file = new File($item->getPathname()); break; } } return $file; }