* @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\QueryHandler; use PrestaShop\PrestaShop\Core\ConfigurationInterface; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\Query\GetSqlRequestSettings; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\SqlRequestSettings; use PrestaShop\PrestaShop\Core\Encoding\CharsetEncoding; /** * Class GetSqlRequestSettingsHandler handles query to get SqlRequest settings. */ final class GetSqlRequestSettingsHandler implements GetSqlRequestSettingsHandlerInterface { /** * @var ConfigurationInterface */ private $configuration; /** * @param ConfigurationInterface $configuration */ public function __construct(ConfigurationInterface $configuration) { $this->configuration = $configuration; } /** * {@inheritdoc} */ public function handle(GetSqlRequestSettings $query) { $fileEncodingIntValue = $this->configuration->get(SqlRequestSettings::FILE_ENCODING); return new SqlRequestSettings( $this->getFileEncoding($fileEncodingIntValue) ); } /** * File encodings are saved as integer values in databases. * * @param int|null $rawValue * * @return string */ private function getFileEncoding($rawValue) { $valuesMapping = [ 1 => CharsetEncoding::UTF_8, 2 => CharsetEncoding::ISO_8859_1, ]; if (isset($valuesMapping[$rawValue])) { return $valuesMapping[$rawValue]; } return CharsetEncoding::UTF_8; } }