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

Class FixedWindowRateLimiter

Fixed window rate limiter implementation

Namespace: Cake\Http\RateLimit

Property Summary

  • $cache protected
    Psr\SimpleCache\CacheInterface

    Cache instance

Method Summary

  • __construct() public

    Constructor

  • attempt() public

    Attempt to consume from the rate limit

  • reset() public

    Reset rate limit for an identifier

Method Detail

__construct() ¶ public

__construct(Psr\SimpleCache\CacheInterface $cache)

Constructor

Parameters
Psr\SimpleCache\CacheInterface $cache

Cache instance

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
int $limit
int $window
int $cost optional
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
Returns
void

Property Detail

$cache ¶ protected

Cache instance

Type
Psr\SimpleCache\CacheInterface
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