1 | <?php |
||
15 | final class RateLimitMiddleware implements MiddlewareInterface |
||
16 | { |
||
17 | public const HEADER_LIMIT = 'X-RateLimit-Limit'; |
||
18 | public const HEADER_REMAINING = 'X-RateLimit-Remaining'; |
||
19 | public const HEADER_RESET = 'X-RateLimit-Reset'; |
||
20 | |||
21 | /** @var SilentRateLimiter */ |
||
22 | private $rateLimiter; |
||
23 | |||
24 | /** @var string */ |
||
25 | private $endpointName; |
||
26 | |||
27 | /** @var Rate */ |
||
28 | private $rate; |
||
29 | |||
30 | /** @var ResolveUserIdentity */ |
||
31 | private $resolveUserIdentity; |
||
32 | |||
33 | /** @var RequestHandlerInterface */ |
||
34 | private $limitExceededHandler; |
||
35 | |||
36 | public function __construct( |
||
49 | |||
50 | public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
||
62 | |||
63 | private function getIdentifier(ServerRequestInterface $request): string |
||
69 | |||
70 | private function setRateLimitHeaders(ResponseInterface $response, Status $rateLimitStatus): ResponseInterface |
||
77 | } |
||
78 |