getRateLimit() публичный Метод

Returns the maximum number of allowed requests and the window size.
public getRateLimit ( Request $request, Action $action ) : array
$request yii\web\Request the current request
$action yii\base\Action the action to be executed
Результат array an array of two elements. The first element is the maximum number of allowed requests, and the second element is the size of the window in seconds.
Пример #1
0
 /**
  * Checks whether the rate limit exceeds.
  * @param RateLimitInterface $user the current user
  * @param Request $request
  * @param Response $response
  * @param \yii\base\Action $action the action to be executed
  * @throws TooManyRequestsHttpException if rate limit exceeds
  */
 public function checkRateLimit($user, $request, $response, $action)
 {
     $current = time();
     list($limit, $window) = $user->getRateLimit($request, $action);
     list($allowance, $timestamp) = $user->loadAllowance($request, $action);
     $allowance += (int) (($current - $timestamp) * $limit / $window);
     if ($allowance > $limit) {
         $allowance = $limit;
     }
     if ($allowance < 1) {
         $user->saveAllowance($request, $action, 0, $current);
         $this->addRateLimitHeaders($response, $limit, 0, $window);
         throw new TooManyRequestsHttpException($this->errorMessage);
     } else {
         $user->saveAllowance($request, $action, $allowance - 1, $current);
         $this->addRateLimitHeaders($response, $limit, $allowance - 1, (int) (($limit - $allowance) * $window / $limit));
     }
 }