РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
833 of 1361 menu

Метод create класса RateLimiter

Метод create класса RateLimiter создаёт объект RateLimit, который описывает лимит запросов для конкретного ключа. Первым параметром передаётся ключ лимита, вторым - количество разрешённых запросов, третьим - интервал времени в секундах. Полученный объект затем передаётся в метод consume для проверки и расхода лимита.

Синтаксис

public function create(string $key, int $limit, int $interval): RateLimit

Пример

Давайте создадим лимит на 3 запроса в течение 60 секунд и проверим его:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\RateLimiter\RateLimiterFactory; class ArticleController extends AbstractController { public function index(RateLimiterFactory $limiterFactory): Response { $limiter = $limiterFactory->create('user'); $limit = $limiter->consume(1); if (!$limit->isAccepted()) { return new Response('too many requests'); } return new Response('hello'); } } ?>

Результат выполнения кода:

"hello"

Пример

Давайте создадим объект RateLimit напрямую через метод create и выведем оставшееся количество запросов:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\RateLimiter\RateLimiterFactory; class ArticleController extends AbstractController { public function index(RateLimiterFactory $limiterFactory): Response { $limiter = $limiterFactory->create('article'); $limit = $limiter->consume(1); $res = $limit->getRemainingTokens(); return new Response((string) $res); } } ?>

Результат выполнения кода:

"2"

Смотрите также

  • класс RateLimiter,
    который управляет ограничением запросов
  • метод consume,
    который расходует токены лимита
  • класс RateLimit,
    который описывает состояние лимита
  • метод getRemainingTokens,
    который возвращает оставшееся количество токенов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить