1. Go to this page and download the library: Download nimbly/throttler 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/ */
nimbly / throttler example snippets
$storageAdapter = new Throttler\Adapters\Redis(
new Predis\Client('tcp://localhost:6379')
);
$throttler = new Throttler($storageAdapter);
$throttler = new Throttler($storageAdapter, ['key' => 'value']);
if( $throttler->hit($request->ipAddress(), 120, 60) === false ){
throw new TooManyRequestsHttpException(60, 'Slow it down man!');
}
class ThrottleRequest implements SomeMiddlewareLibrary
{
public function handle(Request $request, $next)
{
$storageAdapter = new Throttler\Adapters\Redis(
new Predis\Client('tcp://localhost:6379')
);
$throttler = new Throttler($storageAdapter);
if( $throttler->hit($request->ipAddress(), 120, 60) === false ){
throw new TooManyRequestsHttpException(60, 'Slow it down man!');
}
return $next($request);
}
}
$redisAdapter = new Throttler\Adapters\Redis(
new Predis\Client("tcp://localhost:6379")
);
$throttler = new Throttler($redisAdapter);
$databaseAdapter = new Throttler\Adapters\Database(
new PDO("mysql:dbname=myapp;host=localhost", "username", "password")
);
$throttler = new Throttler($databaseAdapter);
$databaseAdapter = new Throttler\Adapters\Database(
new PDO("mysql:dbname=myapp;host=localhost", "username", "password"),
[
"table" => "limiter",
"key" => "id",
"hits" => "value",
"expires_at" => "ttl",
"gc_chance" => 20,
]
);
$throttler = new Throttler($databaseAdapter);
$apcuAdapter = new Throttler\Adapters\Apcu;
$throttler = new Throttler($apcuAdapter);
$memoryAdapter = new Throttler\Adapters\Memory;
$throttler = new Throttler($memoryAdapter);
use Nimbly\Throttler\StorageAdapter;
class MyStorageAdapter implements StorageAdapter
{
public function get(string $key): int
{
// Get $key from storage engine.
}
public function increment(string $key, int $decay): int
{
// Increment $key on storage engine and return new value.
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.