nickurt/laravel-akismet is a Laravel package for akismet for laravel 11.x/12.x/13.x.
It currently has 99 GitHub stars and 151.537 downloads on Packagist (latest version 2.3.1).
Install it with composer require nickurt/laravel-akismet.
Discover more Laravel packages by nickurt
or browse all Laravel packages to compare alternatives.
Last updated
Install this package with composer:
composer require nickurt/laravel-akismet
Copy the config files for the api
php artisan vendor:publish --provider="nickurt\Akismet\ServiceProvider" --tag="config"
The Akismet information can be set with environment values in the .env file (or directly in the config/akismet.php file)
AKISMET_APIKEY=MY_UNIQUE_APIKEY
AKISMET_BLOGURL=https://my-custom-blogurl.dev
You can use a hidden-field akismet in your Form-Request to validate if the request is valid
// FormRequest ...
public function rules()
{
return [
'akismet' => [new \nickurt\Akismet\Rules\AkismetRule(
request()->input('email'), request()->input('name')
)]
];
}
// Manually ...
$validator = validator()->make(['akismet' => 'akismet'], ['akismet' => [new \nickurt\Akismet\Rules\AkismetRule(
request()->input('email'), request()->input('name')
)]]);
The AkismetRule requires a email and name parameter to validate the request.
You can listen to the IsSpam, ReportSpam and ReportHam events, e.g. if you want to log all the IsSpam-requests in your application
This event will be fired when the request contains spam
nickurt\Akismet\Events\IsSpam
This event will be fired when you succesfully reported spam
nickurt\Akismet\Events\ReportSpam
This event will be fired when you succesfully reported ham
nickurt\Akismet\Events\ReportHam
if( \Akismet::validateKey() ) {
// valid
} else {
// invalid
}
\Akismet::setCommentAuthor("John Doe")
->setCommentAuthorUrl("https://www.google.com")
->setCommentContent("It's me, John!")
->setCommentType('registration');
// etc
// or
\Akismet::fill([
'comment_author' => 'John Doe',
'comment_author_url' => 'https://www.google.com',
'comment_content' => 'It's me, John!'
]);
// etc
if( \Akismet::isSpam() ) {
// yes, i'm spam!
}
if( \Akismet::reportSpam() ) {
// yes, thanks!
}
if( \Akismet::reportHam() ) {
// yes, thanks!
}
composer test