Limit
class Limit extends AdmissionPolicy
Constants
| MAX_INTEGER |
The largest integer represented exactly by every first-party store. |
Methods
Create a new fixed-window limit.
Apply the policy without a named limiter scope.
Set the callback that determines whether the operation should be consumed.
Set the callback that generates a response when the limit is exceeded.
Create a copy with the given shared policy values.
Convert a caller key to its canonical string value.
Validate a positive shared integer.
Multiply positive rate limit values without losing integer precision.
Create a new rate limit using minutes as the decay time.
Details
at line 14
__construct(int $maxAttempts = 60, int $decaySeconds = 60, string $key = '', int $cost = 1, bool $global = false, Closure|null $afterCallback = null, Closure|null $responseCallback = null)
Create a new fixed-window limit.
in
AdmissionPolicy at line 37
AdmissionPolicy
by(Stringable|UnitEnum|string|int|null $key)
Set the key of the rate limit.
in
AdmissionPolicy at line 51
AdmissionPolicy
cost(int $cost)
Set the capacity consumed by each operation.
in
AdmissionPolicy at line 70
AdmissionPolicy
globally(bool $global = true)
Apply the policy without a named limiter scope.
in
AdmissionPolicy at line 84
AdmissionPolicy
after(callable $callback)
Set the callback that determines whether the operation should be consumed.
in
AdmissionPolicy at line 98
AdmissionPolicy
response(callable $callback)
Set the callback that generates a response when the limit is exceeded.
at line 87
protected AdmissionPolicy
newInstance(string $key, int $cost, bool $global, Closure|null $afterCallback, Closure|null $responseCallback)
Create a copy with the given shared policy values.
in
AdmissionPolicy at line 123
protected string
normalizeKey(Stringable|UnitEnum|string|int|null $key)
Convert a caller key to its canonical string value.
in
AdmissionPolicy at line 135
static protected void
ensurePositive(string $name, int $value)
Validate a positive shared integer.
in
AdmissionPolicy at line 149
static protected int
multiply(int $value, int $multiplier, string $name)
Multiply positive rate limit values without losing integer precision.
at line 33
static Limit
perSecond(int $maxAttempts, int $decaySeconds = 1)
Create a new per-second rate limit.
at line 41
static Limit
perMinute(int $maxAttempts, int $decayMinutes = 1)
Create a new per-minute rate limit.
at line 51
static Limit
perMinutes(int $decayMinutes, int $maxAttempts)
Create a new rate limit using minutes as the decay time.
at line 59
static Limit
perHour(int $maxAttempts, int $decayHours = 1)
Create a new per-hour rate limit.
at line 69
static Limit
perDay(int $maxAttempts, int $decayDays = 1)
Create a new per-day rate limit.
at line 79
static Unlimited
none()
Create a new unlimited rate limit.