Метод getRemainingTokens
Метод getRemainingTokens принадлежит классу RateLimit
и возвращает целое число - количество токенов, которые ещё
доступны в данный момент. Метод не принимает параметров.
Обычно он используется вместе с методом isAccepted,
чтобы показать пользователю, сколько попыток у него осталось.
Синтаксис
public function getRemainingTokens(): int
Пример
Давайте создадим ограничитель и проверим, сколько токенов осталось после одного запроса:
<?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 $anonymousApiLimiter): Response
{
$limiter = $anonymousApiLimiter->create('user');
$limit = $limiter->consume(1);
$res = $limit->getRemainingTokens();
return new Response((string) $res);
}
}
?>
Результат выполнения кода:
4
Пример
Давайте выведем количество оставшихся токенов в виде строки:
<?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 $anonymousApiLimiter): Response
{
$limiter = $anonymousApiLimiter->create('user');
$limit = $limiter->consume(1);
$res = 'Remaining tokens: ' . $limit->getRemainingTokens();
return new Response($res);
}
}
?>
Результат выполнения кода:
"Remaining tokens: 4"
Смотрите также
-
класс
RateLimit,
который представляет результат ограничения -
метод
isAccepted,
который проверяет, принят ли запрос -
метод
getRetryAfter,
который возвращает время до следующей попытки -
метод
consume,
который расходует токены из хранилища