* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Adapter\Module; use Module as LegacyModule; use Symfony\Component\Filesystem\Exception\IOException; use Symfony\Component\Filesystem\Filesystem; /** * Responsible of managing updates of modules. */ class ModuleDataUpdater { /** * @param string $name * * @return bool */ public function removeModuleFromDisk($name) { $fs = new FileSystem(); try { $fs->remove(_PS_MODULE_DIR_ . '/' . $name); return true; } catch (IOException $e) { return false; } } /** * @param string $name * * @return bool */ public function upgrade($name) { // Calling this function will init legacy module data $module_list = LegacyModule::getModulesOnDisk(); foreach ($module_list as $module) { if ($module->name != $name) { continue; } if (LegacyModule::initUpgradeModule($module)) { $legacy_instance = LegacyModule::getInstanceByName($name); $legacy_instance->runUpgradeModule(); LegacyModule::upgradeModuleVersion($name, $module->version); return !count($legacy_instance->getErrors()); } elseif (LegacyModule::getUpgradeStatus($name)) { return true; } return true; } return false; } }