ThrottleRequests
class ThrottleRequests
Traits
Properties
| protected RateLimiter | $limiter | The rate limiter instance. |
Methods
Get the number of seconds until the given DateTime.
Get the "available at" UNIX timestamp.
If the given value is an interval, convert it to a DateTime instance.
Given a start time, format the total run time for human readability.
Specify the named rate limiter to use for the middleware.
Specify the rate limiter configuration for the middleware.
Handle an incoming request using a named limiter.
Handle an incoming request.
Resolve the fixed-window duration from the middleware argument.
Resolve the number of attempts if the user is authenticated or not.
Create a 'too many attempts' exception.
Add the limit header information to the given response.
Get the limit headers information.
Details
in
InteractsWithTime at line 17
protected int
secondsUntil(DateInterval|DateTimeInterface|int $delay)
Get the number of seconds until the given DateTime.
in
InteractsWithTime at line 29
protected int
availableAt(DateInterval|DateTimeInterface|int|null $delay = 0)
Get the "available at" UNIX timestamp.
in
InteractsWithTime at line 47
protected DateTimeInterface|int
parseDateInterval(DateInterval|DateTimeInterface|int|null $delay)
If the given value is an interval, convert it to a DateTime instance.
in
InteractsWithTime at line 63
protected int
currentTime()
Get the current system time as a UNIX timestamp.
in
InteractsWithTime at line 71
protected string
runTimeForHumans(float $startTime, float|null $endTime = null)
Given a start time, format the total run time for human readability.
at line 39
__construct(RateLimiter $limiter)
Create a new request throttler.
at line 47
static string
using(UnitEnum|string $name)
Specify the named rate limiter to use for the middleware.
at line 57
static string
with(int $maxAttempts = 60, int $decayMinutes = 1, string $prefix = '')
Specify the rate limiter configuration for the middleware.
at line 68
Response
handle(Request $request, Closure $next, int|string $maxAttempts = 60, float|int|string $decayMinutes = 1, string $prefix = '')
Handle an incoming request.
at line 95
protected Response
handleRequestUsingNamedLimiter(Request $request, Closure $next, string $limiterName, Closure $limiter)
Handle an incoming request using a named limiter.
at line 122
protected Response
handleRequest(Request $request, Closure $next, array $limits, Limiter $limiter, string|null $limiterName = null)
Handle an incoming request.
at line 189
protected int
resolveDecaySeconds(float|int|string $decayMinutes)
Resolve the fixed-window duration from the middleware argument.
at line 203
protected int
resolveMaxAttempts(Request $request, int|string $maxAttempts)
Resolve the number of attempts if the user is authenticated or not.
at line 230
protected string
resolveRequestSignature(Request $request)
Resolve request signature.
at line 245
protected ThrottleRequestsException|HttpResponseException
buildException(Request $request, LimitResult $result, callable|null $responseCallback = null)
Create a 'too many attempts' exception.
at line 263
protected Response
addHeaders(Response $response, int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null)
Add the limit header information to the given response.
at line 275
protected array
getHeaders(int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null, Response|null $response = null)
Get the limit headers information.