* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ namespace PrestaShop\Module\AutoUpgrade\UpgradeTools\Module; use LogicException; use PrestaShop\Module\AutoUpgrade\Exceptions\UpgradeException; use PrestaShop\Module\AutoUpgrade\UpgradeTools\Translator; use PrestaShop\Module\AutoUpgrade\ZipAction; class ModuleUnzipper { /** @var Translator */ private $translator; /** @var ZipAction */ private $zipAction; /** @var string */ private $modulesPath; public function __construct(Translator $translator, ZipAction $zipAction, string $modulesPath) { $this->translator = $translator; $this->zipAction = $zipAction; $this->modulesPath = $modulesPath; } /** * @throws LogicException|UpgradeException */ public function unzipModule(ModuleUnzipperContext $moduleUnzipperContext): void { if (!$this->zipAction->extract($moduleUnzipperContext->getZipFullPath(), $this->modulesPath)) { throw (new UpgradeException($this->translator->trans('[WARNING] Error when trying to extract module %s.', [$moduleUnzipperContext->getModuleName()])))->setSeverity(UpgradeException::SEVERITY_WARNING); } } }