RateLimiter
class RateLimiter (View source)
Traits
Properties
protected Repository | $cache | The cache store implementation. |
Methods
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Determine if the given key has been "accessed" too many times.
Increment the counter for a given key for a given decay time.
Get the number of attempts for the given key.
Reset the number of attempts for the given key.
Get the number of retries left for the given key.
Clear the hits and lockout timer for the given key.
Get the number of seconds until the "key" is accessible again.
Details
protected int
secondsUntil(DateTimeInterface|DateInterval|int $delay)
Get the number of seconds until the given DateTime.
protected int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)
Get the "available at" UNIX timestamp.
protected DateTimeInterface|int
parseDateInterval(DateTimeInterface|DateInterval|int $delay)
If the given value is an interval, convert it to a DateTime instance.
protected int
currentTime()
Get the current system time as a UNIX timestamp.
void
__construct(Repository $cache)
Create a new rate limiter instance.
bool
tooManyAttempts(string $key, int $maxAttempts)
Determine if the given key has been "accessed" too many times.
int
hit(string $key, int $decaySeconds = 60)
Increment the counter for a given key for a given decay time.
mixed
attempts(string $key)
Get the number of attempts for the given key.
mixed
resetAttempts(string $key)
Reset the number of attempts for the given key.
int
retriesLeft(string $key, int $maxAttempts)
Get the number of retries left for the given key.
void
clear(string $key)
Clear the hits and lockout timer for the given key.
int
availableIn(string $key)
Get the number of seconds until the "key" is accessible again.