| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- /**
- * @link http://www.yiiframework.com/
- * @copyright Copyright (c) 2008 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
- namespace yii\filters;
- /**
- * RateLimitInterface is the interface that may be implemented by an identity object to enforce rate limiting.
- *
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @since 2.0
- */
- interface RateLimitInterface
- {
- /**
- * Returns the maximum number of allowed requests and the window size.
- * @param \yii\web\Request $request the current request
- * @param \yii\base\Action $action the action to be executed
- * @return 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.
- */
- public function getRateLimit($request, $action);
- /**
- * Loads the number of allowed requests and the corresponding timestamp from a persistent storage.
- * @param \yii\web\Request $request the current request
- * @param \yii\base\Action $action the action to be executed
- * @return array an array of two elements. The first element is the number of allowed requests,
- * and the second element is the corresponding UNIX timestamp.
- */
- public function loadAllowance($request, $action);
- /**
- * Saves the number of allowed requests and the corresponding timestamp to a persistent storage.
- * @param \yii\web\Request $request the current request
- * @param \yii\base\Action $action the action to be executed
- * @param int $allowance the number of allowed requests remaining.
- * @param int $timestamp the current timestamp.
- */
- public function saveAllowance($request, $action, $allowance, $timestamp);
- }
|