Allows detection of spam from contact forms, etc.
composer require perf/spam-detection
Implement a spam key word repository, such as this one:
use perf\SpamDetection\SpamKeyword;
use perf\SpamDetection\SpamKeywordRepositoryInterface;
class SpamKeywordRepository implements SpamKeywordRepositoryInterface
{
public function getSpamKeywords(): iterable
{
return [
new SpamKeyword('viagra', 150),
new SpamKeyword('casino', 100),
];
}
}
Now you can detect spam:
use perf\SpamDetection\SpamEvaluator;
$spamEvaluator = new SpamEvaluator(
new SpamKeywordRepository(),
100 // Threshold
);
$submittedContent = 'Buy Viagra, and then go to the casino.'
$outcome = $spamEvaluator->evaluate($submittedContent);
if ($outcome->isSpam()) {
echo "This is definitely spam.";
}