* @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\Parameters; use PrestaShop\Module\AutoUpgrade\Upgrader; class UpgradeConfigurationStorage extends FileConfigurationStorage { public function load(string $fileName = ''): UpgradeConfiguration { $data = array_merge( $this->getDefaultData(), parent::load($fileName) ); return new UpgradeConfiguration($data); } /** * @param UpgradeConfiguration $config * @param string $fileName Destination path of the config file */ public function save($config, string $fileName): bool { if (!$config instanceof UpgradeConfiguration) { throw new \InvalidArgumentException('Config is not a instance of UpgradeConfiguration'); } return parent::save($config->toArray(), $fileName); } /** * @return array */ public function getDefaultData(): array { return array_merge(UpgradeConfiguration::PS_CONST_DEFAULT_VALUE, [ 'channel' => Upgrader::DEFAULT_CHANNEL, 'archive.filename' => Upgrader::DEFAULT_FILENAME, ]); } }