makm / flood-control
simple flood control for any actions
Installs: 2 069
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is not auto-updated.
Last update: 2025-07-01 00:34:14 UTC
README
Install
composer install makm/flood-control
Configuration simple:
$redis = new \Redis(); $redis->connect('localhost'); $provider = new \Makm\FloodControl\AttemptProvider($redis); $floodControl = new \Makm\FloodControl\FloodControl( $provider, [ ['period' => \Makm\FloodControl\Limitations::PERIOD_WEEK, 'amount' => 5, 'times' => 15, 'sms-code'], ['period' => \Makm\FloodControl\Limitations::PERIOD_WEEK, 'amount' => 3, 'times' => 3, 'mail'], ['period' => \Makm\FloodControl\Limitations::PERIOD_DAY, 'amount' => 3, 'times' => 10, 'sms-code'], ['period' => \Makm\FloodControl\Limitations::PERIOD_DAY, 'amount' => 1, 'times' => 2, 'mail'], ['period' => \Makm\FloodControl\Limitations::PERIOD_MONTH, 'amount' => 1, 'times' => 200, 'sms-code'], ]); $result = $floodControl->doAttempt(new Action('sms-code', '+155555555')); $result = $floodControl->allow(new Action('mail', '+155555555'));
Symfony:
Makm\FloodControl\FloodControl: arguments: - '@Makm\FloodControl\AttemptProvider\RedisProvider' - [ {period: minute, amount: 1, times: 1, group: confirm-phone } {period: hour, amount: 1, times: 5, group: confirm-phone } {period: day, amount: 1, times: 10, group: confirm-phone } ]