8000 GitHub - nhphero/throttle: A PHP package for throttling and rate limiting
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

nhphero/throttle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple PHP Throttle

This is yet another Throttling library for PHP applications, that provides a throttling interface and a flexible API for implementing custom throttling algorithms (aka providers) and storage strategies.

Installation

$ composer require nhphero/throttle

Basic Usage

<?php

$storage = new NhpHero\Throttle\Store\RedisStore( 'throttle_storage_prefix::',[
            'scheme' => config('redis.scheme'),
            'host' => config('redis.host'),
            'port' => config('redis.port'),
            'password' => config('redis.password'),
            'timeout' => config('redis.timeout'),
        ]);
$throttle = new NhpHero\Throttle\Throttle($storage);
//Limit 10 request per 60 seconds
$limit = 10;
$time= 60;
$throttleKey = $_SERVER['REMOTE_ADDR'];
if ($throttle->attempt($throttleKey, $limit, $time)) {
    // allow
} else {
    // deny
}

Storage Strategies

Currently, only Redis storage .

Development and Tests

Feel free to contribute with bug fixing, new providers and storage strategies.

To start contributing, just make a fork of this repo, create a branch which the name explains what you are doing, code your solution and send us a Pull Request.

Development Installation

$ composer install --dev

Running the Tests

$ ./vendor/bin/phpunit

Documentation

Coming soon.

License

This library is licensed under the MIT license.

About

A PHP package for throttling and rate limiting

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

0