Search by

antikirra / rate-limiter

antikirra

There is no license information available for the latest version (0.0.2) of this package.

This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.

Package info

github.com/antikirra/rate-limiter

pkg:composer/antikirra/rate-limiter

Statistics

Installs: 190

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.2 2024-02-06 10:00 UTC

This package is auto-updated.

Last update: 2026-02-06 14:38:23 UTC


README

Packagist Dependency Version Packagist Dependency Version Packagist Version

Install

composer require antikirra/rate-limiter

Basic usage

<?php

use Antikirra\RateLimiter;

require __DIR__ . '/vendor/autoload.php';

$redis = new Redis();
$redis->connect('127.0.0.1');

// maximum of three requests per minute
$limiter = new RateLimiter($redis, "signin_by_ip{$_SERVER['REMOTE_ADDR']}", 3, 60, 0.75);

$result = $limiter->check(); // returns the actual counter value without any side effects
echo $result->getCount(); // (int) actual counter value
print_r($result->isPassed()); // (bool) true - it's okay, false - flood has been detected!!!

$result = $limiter->hit(); // increments the counter value, returning the result of the check
echo $result->getCount(); // (int) updated counter value
print_r($result->isPassed()); // (bool) true - it's okay, false - flood has been detected!!!
print_r($result->isFailed()); // (bool) true - flood has been detected!!!, false - it's okay

$limiter->reset(); // (void) resets counters to zero