* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShopBundle\Utils; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use ZipArchive; class ZipManager { public function createArchive($filename, $folder) { $zip = new ZipArchive(); $zip->open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE); $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($folder), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($files as $filename => $file) { if (!$file->isDir()) { $filePath = $file->getRealPath(); $relativePath = substr($filename, strlen($folder) + 1); $zip->addFile($filePath, $relativePath); } } $zip->close(); } }