* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Backup\Configuration; use PrestaShop\PrestaShop\Core\Configuration\DataConfigurationInterface; use PrestaShop\PrestaShop\Core\ConfigurationInterface; /** * Class BackupOptionsConfigurator configures backup options. */ final class BackupOptionsConfiguration implements DataConfigurationInterface { /** * @var ConfigurationInterface */ private $configuration; /** * @param ConfigurationInterface $configuration */ public function __construct(ConfigurationInterface $configuration) { $this->configuration = $configuration; } /** * {@inheritdoc} */ public function getConfiguration() { return [ 'backup_all' => (bool) $this->configuration->get('PS_BACKUP_ALL'), 'backup_drop_tables' => (bool) $this->configuration->get('PS_BACKUP_DROP_TABLE'), ]; } /** * {@inheritdoc} */ public function updateConfiguration(array $config) { if ($this->validateConfiguration($config)) { $this->configuration->set('PS_BACKUP_ALL', $config['backup_all']); $this->configuration->set('PS_BACKUP_DROP_TABLE', $config['backup_drop_tables']); } return []; } /** * {@inheritdoc} */ public function validateConfiguration(array $config) { return isset( $config['backup_all'], $config['backup_drop_tables'] ); } }