Spec-Zone.ru › Yii 2.0

Класс yii\filters\RateLimiter

Все классы | Свойства | Методы
Наследование yii\filters\RateLimiter » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/filters/RateLimiter.php

RateLimiter реализует алгоритм ограничения скорости на основе алгоритма leaky bucket.

Вы можете использовать RateLimiter, подключив его как поведение к контроллеру или модулю, как показано ниже,

public function behaviors()
{
    return [
        'rateLimiter' => [
            'class' => \yii\filters\RateLimiter::className(),
        ],
    ];
}

Когда пользователь превысил лимит скорости, RateLimiter выбросит исключение yii\web\TooManyRequestsHttpException.

Обратите внимание, что RateLimiter требует, чтобы $user реализовывал интерфейс yii\filters\RateLimitInterface. RateLimiter ничего не сделает, если $user не задан или не реализует yii\filters\RateLimitInterface.

Публичные свойства

Свойство Тип Описание Определено в
$enableRateLimitHeaders boolean Включать ли заголовки ограничения скорости в ответ yii\filters\RateLimiter
$errorMessage string Сообщение, отображаемое при превышении лимита скорости yii\filters\RateLimiter
$except array Список идентификаторов действий, к которым этот фильтр не должен применяться. yii\base\ActionFilter
$only array Список идентификаторов действий, к которым этот фильтр должен применяться. yii\base\ActionFilter
$owner yii\base\Component|null Владелец этого поведения yii\base\Behavior
$request yii\web\Request Текущий запрос. yii\filters\RateLimiter
$response yii\web\Response Ответ, который должен быть отправлен. yii\filters\RateLimiter
$user yii\filters\RateLimitInterface Объект пользователя, реализующий RateLimitInterface. yii\filters\RateLimiter

Публичные методы

Метод Описание Определено в
__call() Вызывает метод, который не является методом класса. yii\base\Object
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
addRateLimitHeaders() Добавляет заголовки ограничения скорости в ответ yii\filters\RateLimiter
afterAction() Этот метод вызывается сразу после выполнения действия. yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
attach() Присоединяет объект поведения к компоненту. yii\base\Behavior
beforeAction() Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить последнюю подготовку к действию. yii\filters\RateLimiter
beforeFilter() yii\base\ActionFilter
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
checkRateLimit() Проверяет, превышен ли лимит скорости. yii\filters\RateLimiter
className() Возвращает полное имя этого класса. yii\base\Object
detach() Отсоединяет объект поведения от компонента. yii\base\Behavior
events() Объявляет обработчики событий для событий $owner. yii\base\Behavior
hasMethod() Возвращает значение, указывающее, определен ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\filters\RateLimiter

Защищенные методы

Метод Описание Определено в
getActionId() Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю yii\base\ActionFilter
isActive() Возвращает значение, указывающее, активен ли фильтр для данного действия. yii\base\ActionFilter

Подробности свойств

$enableRateLimitHeaders публичное свойство

Включать ли заголовки ограничения скорости в ответ

public boolean $enableRateLimitHeaders = true

$errorMessage публичное свойство

Сообщение, отображаемое при превышении лимита скорости

public string $errorMessage = 'Rate limit exceeded.'

$request публичное свойство

Текущий запрос. Если не задан, будет использован компонент приложения request.

public yii\web\Request $request = null

$response публичное свойство

Ответ, который будет отправлен. Если не задан, будет использован компонент приложения response.

public yii\web\Response $response = null

$user публичное свойство

Объект пользователя, реализующий RateLimitInterface. Если не задан, будет взято значение из Yii::$app->user->getIdentity(false).

public yii\filters\RateLimitInterface $user = null

Подробности методов

addRateLimitHeaders() public method

Добавляет заголовки лимита запросов в ответ

public void addRateLimitHeaders ( $response, $limit, $remaining, $reset )
$response yii\web\Response
$limit integer

Максимальное количество разрешённых запросов за период

$remaining integer

Остаток разрешённых запросов в текущем периоде

$reset integer

Количество секунд ожидания, прежде чем максимальное количество разрешённых запросов обновится

beforeAction() public method

Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод для выполнения подготовки к действию в последнюю минуту.

public boolean beforeAction ( $action )
$action yii\base\Action

Действие, которое будет выполнено.

return boolean

Выполнять ли действие дальше.

checkRateLimit() public method

Проверяет, превышен ли лимит запросов.

public void checkRateLimit ( $user, $request, $response, $action )
$user yii\filters\RateLimitInterface

Текущий пользователь

$request yii\web\Request
$response yii\web\Response
$action yii\base\Action

Действие, которое будет выполнено

throws yii\web\TooManyRequestsHttpException

если лимит запросов превышен

init() public method

Инициализирует объект.

Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.

public void init ( )

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-ratelimiter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API