tiendanube / throttler
一个用于节流和速率限制的PHP包
该包的规范仓库似乎已消失,因此该包已被冻结。
1.0.1
2018-07-24 15:42 UTC
Requires
- php: ~7.0
Requires (Dev)
- php-coveralls/php-coveralls: ~2.1
- phpunit/phpunit: ~6.5
This package is auto-updated.
Last update: 2024-08-02 18:54:42 UTC
README
由于应用程序的速率限制已更改为使用Lua脚本,因此该库已被弃用。整个流程在提案文档中进行了记录,更改可以在以下拉取请求中进行验证
- [ECOSYS-629] 使用Lua脚本进行速率限制 #28322
- [ECOSYS-630] 速率限制脚本部署策略 #28573
- [ECOSYS-1037] 删除旧版速率限制 #29267
- 修复:从项目中删除节流依赖项 #29336
因此,此库将被存档。
节流
这是为PHP应用程序提供的另一个节流库,它提供了一个节流接口和灵活的API,用于实现自定义节流算法(即提供者)和存储策略。
安装
$ composer require tiendanube/throttler
基本用法
<?php $storage = new TiendaNube\Throttler\Storage\InMemory(); $provider = new TiendaNube\Throttler\Provider\LeakyBucket(); $throttler = new \TiendaNube\Throttler\Throttler($provider,$storage); if (!$throttler->throttle('client:1')) { // allow } else { // deny }
提供者
目前,唯一可用的提供者是漏桶算法。
如果您需要不同的节流算法,只需创建自己的类并实现ProviderInterface。
存储策略
目前,唯一可用的存储策略是内存适配器,该适配器将信息存储在内存中,对于CLI应用程序很有用。
如果您想实现自定义存储(例如,Redis数据库),只需创建自己的类并实现StorageInterface。
开发和测试
欢迎为错误修复、新的提供者和存储策略做出贡献。
要开始贡献,只需fork此仓库,创建一个分支,其名称解释了您正在做什么,编写您的解决方案并发送给我们一个Pull Request。
开发安装
$ composer install --dev
运行测试
$ ./vendor/bin/phpunit
文档
即将推出。
许可证
此库根据MIT许可证授权。