ThrottleRequests
class ThrottleRequests (View source)
Traits
Properties
protected RateLimiter | $limiter | The rate limiter instance. |
Methods
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Handle an incoming request.
Resolve the number of attempts if the user is authenticated or not.
Create a 'too many attempts' exception.
Get the number of seconds until the next retry.
Add the limit header information to the given response.
Get the limit headers information.
Calculate the number of remaining attempts.
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(RateLimiter $limiter)
Create a new request throttler.
Response
handle(Request $request, Closure $next, int|string $maxAttempts = 60, float|int $decayMinutes = 1, string $prefix = '')
Handle an incoming request.
protected Response
handleRequestUsingNamedLimiter(Request $request, Closure $next, string $limiterName, Closure $limiter)
Handle an incoming request.
protected Response
handleRequest(Request $request, Closure $next, array $limits)
Handle an incoming request.
protected int
resolveMaxAttempts(Request $request, int|string $maxAttempts)
Resolve the number of attempts if the user is authenticated or not.
protected string
resolveRequestSignature(Request $request)
Resolve request signature.
protected ThrottleRequestsException
buildException(Request $request, string $key, int $maxAttempts, callable|null $responseCallback = null)
Create a 'too many attempts' exception.
protected int
getTimeUntilNextRetry(string $key)
Get the number of seconds until the next retry.
protected Response
addHeaders(Response $response, int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null)
Add the limit header information to the given response.
protected array
getHeaders(int $maxAttempts, int $remainingAttempts, int|null $retryAfter = null, Response|null $response = null)
Get the limit headers information.
protected int
calculateRemainingAttempts(string $key, int $maxAttempts, int|null $retryAfter = null)
Calculate the number of remaining attempts.