Interface RateLimiterInterface
Rate limiter interface
Namespace: Cake\Http\RateLimit
Method Summary
-
attempt() public
Attempt to consume from the rate limit
-
reset() public
Reset rate limit for an identifier
Method Detail
attempt() ¶ public
attempt(string $identifier, int $limit, int $window, int $cost = 1): array{allowed: bool, limit: int, remaining: int, reset: int}
Attempt to consume from the rate limit
Parameters
-
string$identifier The identifier to rate limit
-
int$limit The maximum number of requests
-
int$window The time window in seconds
-
int$cost optional The cost of this request
Returns
array{allowed: bool, limit: int, remaining: int, reset: int}reset() ¶ public
reset(string $identifier): void
Reset rate limit for an identifier
Clears all rate limiting data for the specified identifier, allowing fresh requests to be made. This is useful for testing or when you need to manually reset limits for specific users/IPs.
Note: The identifier should be the same format as used in attempt(), typically a cache key that includes the 'ratelimit' prefix and hashed value.
Example usage:
$cache = Cache::pool('default');
$limiter = new SlidingWindowRateLimiter($cache);
$key = 'rate_limit_' . hash('xxh3', '192.168.1.1');
$limiter->reset($key);
Parameters
-
string$identifier The identifier to reset
Returns
void