39 lines
975 B
PHP
39 lines
975 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Classifier\Lib\Discriminant;
|
|
|
|
use Classifier\Lib\Utils\StringCleaner;
|
|
|
|
class BlackList
|
|
{
|
|
/** @var string[] */
|
|
private $keywords;
|
|
|
|
public function __construct(array $keywords, StringCleaner $cleaner)
|
|
{
|
|
$this->keywords = [];
|
|
|
|
foreach ($keywords as $keyword) {
|
|
$cleanedKeyword = $cleaner->getCleanChain($keyword);
|
|
|
|
if (!is_string($cleanedKeyword) || preg_match('/\s/', $cleanedKeyword)) {
|
|
throw new \InvalidArgumentException(
|
|
"Erreur : Les mots-clés de la blacklist doivent être des chaînes de caractères simples (sans espaces) '{$cleanedKeyword}'."
|
|
);
|
|
}
|
|
$this->keywords[] = $cleanedKeyword;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Retourne la liste des mots-clés de la blacklist
|
|
*
|
|
* @return string[]
|
|
*/
|
|
public function getKeywords(): array
|
|
{
|
|
return $this->keywords;
|
|
}
|
|
}
|