1. Go to this page and download the library: Download tal7aouy/api-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/ */
tal7aouy / api-rate-limiter example snippets
use Tal7aouy\ApiRateLimiter\RedisConnection;
$redisConnection = new RedisConnection();
use Tal7aouy\ApiRateLimiter\RedisRateLimiter;
$redisRateLimiter = new RedisRateLimiter($redisConnection->getClient());
use Tal7aouy\ApiRateLimiter\RateLimiterMiddleware;
$rateLimiterMiddleware = new RateLimiterMiddleware($redisRateLimiter, 10, 60); // Limit: 10 requests per minute
use Laminas\Diactoros\Response;
use Psr\Http\Server\RequestHandlerInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
class SimpleHandler implements RequestHandlerInterface {
public function handle(ServerRequestInterface $request): ResponseInterface {
$response = new Response();
$response->getBody()->write('Hello, World!');
return $response;
}
}
use Laminas\Diactoros\ServerRequestFactory;
$serverParams = ['REMOTE_ADDR' => '127.0.0.1'];
$request = ServerRequestFactory::fromGlobals($serverParams, [], [], [], []);
$response = $rateLimiterMiddleware->process($request, new SimpleHandler());
// Emit Response
use Laminas\HttpHandlerRunner\Emitter\SapiEmitter;
$emitter = new SapiEmitter();
$emitter->emit($response);
use Tal7aouy\ApiRateLimiter\RateLimiter;
class CustomRateLimiter implements RateLimiter {
public function isAllowed(string $identifier, int $limit, int $window): bool {
// Custom rate limiting logic
}
}
$customRateLimiter = new CustomRateLimiter();
$rateLimiterMiddleware = new RateLimiterMiddleware($customRateLimiter, 10, 60);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.