Download the PHP package websoftwares/throttle without Composer
On this page you can find all versions of the php package websoftwares/throttle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download websoftwares/throttle
More information about websoftwares/throttle
Files in websoftwares/throttle
Package throttle
Short Description Ban identifier after certain amount of requests in a given timeframe.
License DBAD
Informations about the package throttle
Throttle (v0.3.3)
Ban identifier after certain amount of requests in a given timeframe.
Installing via Composer (recommended)
Install composer in your project:
Create a composer.json file in your project root:
Install via composer
Usage
Basic usage of the Throttle
class to ban an identifier.
Logger
Any logger library that implements the PSR-3 LoggerInterface should work,
just create your Logger object and inject it into the Throttle
constructor.
For example the excellent logging library Monolog.
Storage
Included is a Memcached
example however it is very easy to use some other storage system
just implement the StorageInterface and inject that object into the Throttle
constructor.
Caution
Whatever storage system u decide to use, don not store the failed request data into your database, this could lead to a DDOS attack and take your database down.
Options
U can override the default options by instantiating a Throttle
class and pass in an array as the third argument.
reset();
This will remove the identifier from the storage.
remaining();
This will return an integer that is the remaining attempt(s) available before identifier gets banned.
Memcached
This requires u have the PHP memcached extension installed.
on Debian/Ubuntu systems for example install like this (requires administrative password).
Testing
In the tests folder u can find several tests.
License
DBAD Public License.
Acknowledgement
Converted from python example and comments from Forrst.com post.