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

Saves the number of allowed requests and the corresponding timestamp to a persistent storage.
public saveAllowance ( Request $request, Action $action, integer $allowance, integer $timestamp )
$request yii\web\Request the current request
$action yii\base\Action the action to be executed
$allowance integer the number of allowed requests remaining.
$timestamp integer the current timestamp.
Пример #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));
     }
 }