nickurt / laravel-akismet
Laravel 10.x & 11.x 的 Akismet
1.13
2024-03-09 14:21 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.8.1
- laravel/framework: ^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.5.12
README
安装
使用 composer 安装此包
composer require nickurt/laravel-akismet
复制 api 的配置文件
php artisan vendor:publish --provider="nickurt\Akismet\ServiceProvider" --tag="config"
配置
可以通过 .env
文件中的环境变量设置 Akismet 信息(或直接在 config/akismet.php
文件中设置)
AKISMET_APIKEY=MY_UNIQUE_APIKEY
AKISMET_BLOGURL=https://my-custom-blogurl.dev
示例
验证规则
您可以在表单请求中使用隐藏字段 akismet
来验证请求是否有效
// 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') )]]);
AkismetRule
需要一个 email
和 name
参数来验证请求。
事件
您可以监听 IsSpam
、ReportSpam
和 ReportHam
事件,例如,如果您想记录应用程序中的所有 IsSpam
-请求
IsSpam 事件
当请求包含垃圾邮件时,将触发此事件 nickurt\Akismet\Events\IsSpam
ReportSpam 事件
当您成功报告垃圾邮件时,将触发此事件 nickurt\Akismet\Events\ReportSpam
ReportHam 事件
当您成功报告正常邮件时,将触发此事件 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