CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 5.3 Chiffon API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 5.3
      • 5.3
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Form
    • Http
      • Client
      • Cookie
      • Exception
      • Middleware
      • RateLimit
      • Session
      • TestSuite
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

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
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs