nickurt / laravel-akismet
Akismet for Laravel 11.x & 12.x
Installs: 122 258
Dependents: 2
Suggesters: 0
Security: 0
Stars: 96
Watchers: 2
Forks: 14
Open Issues: 0
pkg:composer/nickurt/laravel-akismet
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.8.1
- laravel/framework: ^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^9.0|^10.0
- phpunit/phpunit: ^11.0.8
README
Installation
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"
Configuration
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
Examples
Validation Rule
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.
Events
You can listen to the IsSpam, ReportSpam and ReportHam events, e.g. if you want to log all the IsSpam-requests in your application
IsSpam Event
This event will be fired when the request contains spam
nickurt\Akismet\Events\IsSpam
ReportSpam Event
This event will be fired when you succesfully reported spam
nickurt\Akismet\Events\ReportSpam
ReportHam Event
This event will be fired when you succesfully reported ham
nickurt\Akismet\Events\ReportHam
Custom Implementation
Validate Key
if( \Akismet::validateKey() ) { // valid } else { // invalid }
Set CommentAuthor Information
\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
Is it Spam?
if( \Akismet::isSpam() ) { // yes, i'm spam! }
Submit Spam (missed spam)
if( \Akismet::reportSpam() ) { // yes, thanks! }
Submit Ham (false positives)
if( \Akismet::reportHam() ) { // yes, thanks! }
Tests
composer test