243 lines
4.7 KiB
YAML
243 lines
4.7 KiB
YAML
name: RateLimiter
|
|
class_comment: null
|
|
dependencies:
|
|
- name: Closure
|
|
type: class
|
|
source: Closure
|
|
- name: Cache
|
|
type: class
|
|
source: Illuminate\Contracts\Cache\Repository
|
|
- name: InteractsWithTime
|
|
type: class
|
|
source: Illuminate\Support\InteractsWithTime
|
|
- name: InteractsWithTime
|
|
type: class
|
|
source: InteractsWithTime
|
|
properties:
|
|
- name: cache
|
|
visibility: protected
|
|
comment: '# * The cache store implementation.
|
|
|
|
# *
|
|
|
|
# * @var \Illuminate\Contracts\Cache\Repository'
|
|
- name: limiters
|
|
visibility: protected
|
|
comment: '# * The configured limit object resolvers.
|
|
|
|
# *
|
|
|
|
# * @var array'
|
|
methods:
|
|
- name: __construct
|
|
visibility: public
|
|
parameters:
|
|
- name: cache
|
|
comment: "# * The cache store implementation.\n# *\n# * @var \\Illuminate\\Contracts\\\
|
|
Cache\\Repository\n# */\n# protected $cache;\n# \n# /**\n# * The configured limit\
|
|
\ object resolvers.\n# *\n# * @var array\n# */\n# protected $limiters = [];\n\
|
|
# \n# /**\n# * Create a new rate limiter instance.\n# *\n# * @param \\Illuminate\\\
|
|
Contracts\\Cache\\Repository $cache\n# * @return void"
|
|
- name: for
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
- name: callback
|
|
comment: '# * Register a named limiter configuration.
|
|
|
|
# *
|
|
|
|
# * @param string $name
|
|
|
|
# * @param \Closure $callback
|
|
|
|
# * @return $this'
|
|
- name: limiter
|
|
visibility: public
|
|
parameters:
|
|
- name: name
|
|
comment: '# * Get the given named rate limiter.
|
|
|
|
# *
|
|
|
|
# * @param string $name
|
|
|
|
# * @return \Closure|null'
|
|
- name: attempt
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: maxAttempts
|
|
- name: callback
|
|
- name: decaySeconds
|
|
default: '60'
|
|
comment: '# * Attempts to execute a callback if it''s not limited.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $maxAttempts
|
|
|
|
# * @param \Closure $callback
|
|
|
|
# * @param int $decaySeconds
|
|
|
|
# * @return mixed'
|
|
- name: tooManyAttempts
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: maxAttempts
|
|
comment: '# * Determine if the given key has been "accessed" too many times.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $maxAttempts
|
|
|
|
# * @return bool'
|
|
- name: hit
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: decaySeconds
|
|
default: '60'
|
|
comment: '# * Increment (by 1) the counter for a given key for a given decay time.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $decaySeconds
|
|
|
|
# * @return int'
|
|
- name: increment
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: decaySeconds
|
|
default: '60'
|
|
- name: amount
|
|
default: '1'
|
|
comment: '# * Increment the counter for a given key for a given decay time by a
|
|
given amount.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $decaySeconds
|
|
|
|
# * @param int $amount
|
|
|
|
# * @return int'
|
|
- name: decrement
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: decaySeconds
|
|
default: '60'
|
|
- name: amount
|
|
default: '1'
|
|
comment: '# * Decrement the counter for a given key for a given decay time by a
|
|
given amount.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $decaySeconds
|
|
|
|
# * @param int $amount
|
|
|
|
# * @return int'
|
|
- name: attempts
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
comment: '# * Get the number of attempts for the given key.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @return mixed'
|
|
- name: resetAttempts
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
comment: '# * Reset the number of attempts for the given key.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @return mixed'
|
|
- name: remaining
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: maxAttempts
|
|
comment: '# * Get the number of retries left for the given key.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $maxAttempts
|
|
|
|
# * @return int'
|
|
- name: retriesLeft
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
- name: maxAttempts
|
|
comment: '# * Get the number of retries left for the given key.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @param int $maxAttempts
|
|
|
|
# * @return int'
|
|
- name: clear
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
comment: '# * Clear the hits and lockout timer for the given key.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @return void'
|
|
- name: availableIn
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
comment: '# * Get the number of seconds until the "key" is accessible again.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @return int'
|
|
- name: cleanRateLimiterKey
|
|
visibility: public
|
|
parameters:
|
|
- name: key
|
|
comment: '# * Clean the rate limiter key from unicode characters.
|
|
|
|
# *
|
|
|
|
# * @param string $key
|
|
|
|
# * @return string'
|
|
traits:
|
|
- Closure
|
|
- Illuminate\Support\InteractsWithTime
|
|
- InteractsWithTime
|
|
interfaces: []
|