nickurt / laravel-stopforumspam
Laravel 10.x/11.x 的 StopForumSpam
1.9
2024-03-09 14:32 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-stopforumspam
复制 StopForumSpam 插件的配置文件
php artisan vendor:publish --provider="nickurt\StopForumSpam\ServiceProvider" --tag="config"
示例
验证规则 - IsSpamEmail
// FormRequest ... public function rules() { return [ 'email' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamEmail(20)] ]; } // Manually ... $validator = validator()->make(request()->all(), ['email' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamEmail(20)]]);
IsSpamEmail
验证规则有一个可选参数 frequency
(默认 10),用于验证请求。
验证规则 - IsSpamIp
// FormRequest ... public function rules() { return [ 'ip' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamIp(20)] ]; } // Manually ... $validator = validator()->make(request()->all(), ['ip' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamIp(20)]]);
IsSpamIp
验证规则有一个可选参数 frequency
(默认 10),用于验证请求。
验证规则 - IsSpamUsername
// FormRequest ... public function rules() { return [ 'username' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamUsername(20)] ]; } // Manually ... $validator = validator()->make(request()->all(), ['username' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamUsername(20)]]);
IsSpamUsername
验证规则有一个可选参数 frequency
(默认 10),用于验证请求。
手动使用 - IsSpamEmail
\StopForumSpam::setEmail('nickurt@users.noreply.github.com')->isSpamEmail();
手动使用 - IsSpamIp
\StopForumSpam::setIp('8.8.8.8')->isSpamIp();
手动使用 - IsSpamUsername
\StopForumSpam::setUsername('nickurt')->isSpamUsername();
事件
您可以监听 IsSpamEmail
、IsSpamIp
和 IsSpamUsername
事件,例如,如果您想在应用程序中记录所有 IsSpam
请求。
IsSpamEmail 事件
当请求的电子邮件发送频率超过阈值时,将触发此事件 nickurt\StopForumSpam\Events\IsSpamEmail
IsSpamIp 事件
当请求的 IP 发送频率超过阈值时,将触发此事件 nickurt\StopForumSpam\Events\IsSpamIp
IsSpamUsername 事件
当请求的用户名发送频率超过阈值时,将触发此事件 nickurt\StopForumSpam\Events\IsSpamUsername
测试
composer test