* @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\Domain\SqlManagement\CommandHandler; use PrestaShop\PrestaShop\Core\ConfigurationInterface; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\Command\SaveSqlRequestSettingsCommand; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\SqlRequestSettings; use PrestaShop\PrestaShop\Core\Encoding\CharsetEncoding; /** * Class SaveSqlRequestSettingsHandler handles command to save SqlRequest settings. */ final class SaveSqlRequestSettingsHandler implements SaveSqlRequestSettingsHandlerInterface { /** * @var ConfigurationInterface */ private $configuration; /** * @param ConfigurationInterface $configuration */ public function __construct(ConfigurationInterface $configuration) { $this->configuration = $configuration; } /** * {@inheritdoc} */ public function handle(SaveSqlRequestSettingsCommand $command) { $this->configuration->set(SqlRequestSettings::FILE_ENCODING, $this->getEncodingFileValue($command)); } /** * File encodings are saved as integer values in databases. * * @param SaveSqlRequestSettingsCommand $command * * @return int */ private function getEncodingFileValue(SaveSqlRequestSettingsCommand $command) { $valuesMapping = [ CharsetEncoding::UTF_8 => 1, CharsetEncoding::ISO_8859_1 => 2, ]; return $valuesMapping[$command->getFileEncoding()]; } }