RateLimiter
extends Facade
in package
Class RateLimiter
POST の連投防止を担う PostRateLimiter へのアクセスポイント。
Table of Contents
Properties
- $container : Container
- $instance : mixed
- $resolvedFacades : mixed
- alias → 解決済みファサードクラス名の逆引き表。
Methods
- __callStatic() : mixed
- clearInstance() : void
- テスト用: ファサードがキャッシュしている解決済みインスタンスを破棄する。
- getInstance() : mixed
- get service instance
- logLockPost() : void
- setContainer() : void
- swap() : void
- テスト用: サービスインスタンスをスタブ等へ差し替える。
- validateLockPost() : bool
- getServiceAlias() : string
- getServiceInstance() : mixed
- isCache() : bool
Properties
$container
protected
static Container
$container
$instance
protected
static mixed
$instance
$resolvedFacades
alias → 解決済みファサードクラス名の逆引き表。
protected
static mixed
$resolvedFacades
= []
どのサブクラスも再宣言していないため、全ファサード共通で Facade 基底の 1 テーブルを共有する。bind 変更時にどのファサードの static $instance を 破棄すべきか特定するのに使う。値は class-string => true の連想配列にして 重複登録を自然に排除する。
Methods
__callStatic()
public
static __callStatic(string $method, array<string|int, mixed> $arguments) : mixed
Parameters
- $method : string
- $arguments : array<string|int, mixed>
clearInstance()
テスト用: ファサードがキャッシュしている解決済みインスタンスを破棄する。
public
static clearInstance() : void
isCache() が true のファサードは解決済みインスタンスを静的プロパティ $instance に 保持するため、コンテナ側だけを差し替えても反映されない。本メソッドでキャッシュを 無効化し、次回アクセスでコンテナから再解決させる。
getInstance()
get service instance
public
static getInstance() : mixed
logLockPost()
public
static logLockPost(string $lockKey) : void
試行を記録する
Parameters
- $lockKey : string
setContainer()
public
static setContainer(Container $container) : void
Parameters
- $container : Container
swap()
テスト用: サービスインスタンスをスタブ等へ差し替える。
public
static swap(object $instance) : void
DI コンテナのエイリアスを差し替えたうえで、ファサードがキャッシュしている解決済み インスタンス(isCache() が true の場合)を破棄し、次回アクセス時に差し替え後の インスタンスを再解決させる。テスト後は元のインスタンスを渡して再度呼び出し復元する。
Parameters
- $instance : object
validateLockPost()
public
static validateLockPost(string $lockKey[, int $trialTime = = '5' ][, int $trialNumber = = '5' ][, int $lockTime = = '15' ][, bool $remoteAddr = = 'true' ]) : bool
試行回数の上限内か判定し、超過していればロックする
Parameters
- $lockKey : string
- $trialTime : int = = '5'
- $trialNumber : int = = '5'
- $lockTime : int = = '15'
- $remoteAddr : bool = = 'true'
Return values
boolgetServiceAlias()
protected
static getServiceAlias() : string
Return values
stringgetServiceInstance()
protected
static getServiceInstance(string $alias) : mixed
Parameters
- $alias : string
isCache()
protected
static isCache() : bool