*/ private $keywords; public function __construct(array $keywords, StringCleaner $cleaner) { foreach ($keywords as $keyword => $score) { $cleanedKeyword = $cleaner->getCleanChain($keyword); if (!is_string($cleanedKeyword) || preg_match('/\s/', $cleanedKeyword)) { throw new \InvalidArgumentException( 'Erreur : Les mots-clés de la whitelist doivent être des chaînes de caractères simples (sans espaces).' ); } if (!is_numeric($score) || $score < 0) { throw new \InvalidArgumentException( "Erreur : Le score pour le mot-clé '{$cleanedKeyword}' doit être un nombre positif." ); } $keywords[$cleanedKeyword] = (int)$score; } $this->keywords = $keywords; } /** * Retourne la liste des mots-clés avec leurs poids associés * * @return array */ public function getKeywords(): array { return $this->keywords; } }