com\setasign\SetaFramework\Helper\RateLimiter

DatabaseRateLimiter Class DatabaseRateLimiter

File: /SetaFramework/src/Helper/RateLimiter/DatabaseRateLimiter.php

Class hierarchy

Implements

Summary

Constants

TABLE_NAME

public const DatabaseRateLimiter::TABLE_NAME = 'database-rate-limiter'

Properties

$database

$hardLock

$interval

$rateLimiterName

$sleepWrapper

$softLock


Methods

__construct()

public DatabaseRateLimiter::__construct (
\com\setasign\SetaFramework\Database\Database $database,
string $rateLimiterName,
int $softLock = 10,
?int $hardLock = null,
int $interval = 30,
?\com\setasign\SetaFramework\Helper\FunctionWrapper\SleepWrapper $sleepWrapper = null
)

DatabaseRateLimiter constructor.

Parameters
$database : \com\setasign\SetaFramework\Database\Database
 
$rateLimiterName : string
 
$softLock : int

The soft lock defines with which request the rate will be limited.

$hardLock : ?int

If the hard lock is reached all requests will be blocked.

$interval : int

Wait interval in minutes to reset the counter. Every request counts for itself unlike the cache rate limiter.

$sleepWrapper : ?\com\setasign\SetaFramework\Helper\FunctionWrapper\SleepWrapper
 

throttleRequest()

public DatabaseRateLimiter::throttleRequest (
\Psr\Http\Message\ServerRequestInterface $request
): void
Parameters
$request : \Psr\Http\Message\ServerRequestInterface
 
Exceptions

Throws HardLockException if the rate limiter reached the hard lock