touhonoob/rate-limit
最新稳定版本:2.0.2
Composer 安装命令:
composer require touhonoob/rate-limit
包简介
PHP rate limiting library with Token Bucket Algorithm
README 文档
README
PHP Rate Limiting Library With Token Bucket Algorithm with minimal external dependencies.
Installation
composer require palepurple/rate-limit
Storage Adapters
The RateLimiter needs to know where to get/set data.
Depending on which adapter you install, you may need to install additional libraries (predis/predis or tedivm/stash) or PHP extensions (e.g. Redis, Memcache, APC)
- APCu
- Redis or Predis
- Stash (This supports many drivers - see http://www.stashphp.com/Drivers.html )
- Memcached
Example
require 'vendor/autoload.php'; use \PalePurple\RateLimit\RateLimit; use \PalePurple\RateLimit\Adapter\APC as APCAdapter; use \PalePurple\RateLimit\Adapter\Redis as RedisAdapter; use \PalePurple\RateLimit\Adapter\Predis as PredisAdapter; use \PalePurple\RateLimit\Adapter\Memcached as MemcachedAdapter; use \PalePurple\RateLimit\Adapter\Stash as StashAdapter; $adapter = new APCAdapter(); // Use APC as Storage // Alternatives: // // $adapter = new RedisAdapter((new \Redis()->connect('localhost'))); // Use Redis as Storage // // $adapter = new PredisAdapter((new \Predis\Predis())->connect('localhost')); // Use Predis as Storage // // $memcache = new \Memcached(); // $memcache->addServer('localhost', 11211); // $adapter = new MemcacheAdapter($memcache); // // $stash = new \Stash\Pool(new \Stash\Driver\FileSystem()); // $adapter = new StashAdapter($stash); $rateLimit = new RateLimit("myratelimit", 100, 3600, $adapter); // 100 Requests / Hour $id = $_SERVER['REMOTE_ADDR']; // Use client IP as identity if ($rateLimit->check($id)) { echo "passed"; } else { echo "rate limit exceeded"; }
Installing via Composer
curl -sS https://getcomposer.org/installer | php
composer.phar require palepurple/rate-limit
References
统计信息
- 总下载量: 501.64k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 137
- 点击次数: 1
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-05-16