* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShop\Module\PsxDesign\Validator; if (!defined('_PS_VERSION_')) { exit; } use PrestaShop\Module\PsxDesign\DTO\PsxDesignColorData; use PrestaShop\Module\PsxDesign\Exception\PsxDesignColorsException; class ColorPaletteValidator { /** * @param PsxDesignColorData[] $colors * * @return void */ public function validateColors(array $colors): void { foreach ($colors as $color) { if (!$color->getValue()) { throw new PsxDesignColorsException('Color in color palette is invalid', PsxDesignColorsException::COLOR_IS_INVALID); } if (!$this->isCorrectHexColor($color->getValue())) { throw new PsxDesignColorsException('Wrong color format', PsxDesignColorsException::COLOR_IS_NOT_HEX_FORMAT); } } } /** * @param string $colorValue * * @return bool */ protected function isCorrectHexColor(string $colorValue): bool { return (bool) preg_match('/^#[a-f0-9]{6}$/i', $colorValue); } }