1. Go to this page and download the library: Download yaknet/rate-limiter library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yaknet / rate-limiter example snippets
akNet\RateLimiter\Policy\TokenBucketLimiter;
use YakNet\RateLimiter\Storage\FileStorage;
// Initialize zero-dependency file-based storage
$storage = new FileStorage();
// Capacity = 10 tokens, Refills at 2.0 tokens every second
$limiter = new TokenBucketLimiter($storage, 10, 2.0);
$clientIp = '127.0.0.1';
// Consume 1 token
$limit = $limiter->consume($clientIp, 1);
if ($limit->isAccepted()) {
echo "✔ Request accepted! Remaining quota: " . $limit->getRemaining() . "\n";
} else {
echo "✖ Request throttled! Please wait " . $limit->getRetryAfter() . " seconds.\n";
}
use YakNet\RateLimiter\Policy\SlidingWindowLimiter;
use YakNet\RateLimiter\Storage\InMemoryStorage;
// RAM storage (values persist within the active long-running thread)
$storage = new InMemoryStorage();
// Limit = 5 requests per 10-second rolling window
$limiter = new SlidingWindowLimiter($storage, 5, 10);
$userId = 'user_99';
$limit = $limiter->consume($userId, 1);
if ($limit->isAccepted()) {
// Process request
}
use YakNet\RateLimiter\Policy\TokenBucketLimiter;
use YakNet\RateLimiter\Storage\RedisStorage;
// Using native PHP \Redis or Predis\Client
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$storage = new RedisStorage($redis);
$limiter = new TokenBucketLimiter($storage, 100, 10.0);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.