tiendanube/throttler

一个用于节流和速率限制的PHP包

该包的规范仓库似乎已消失,因此该包已被冻结。

1.0.1 2018-07-24 15:42 UTC

This package is auto-updated.

Last update: 2024-08-02 18:54:42 UTC


README

由于应用程序的速率限制已更改为使用Lua脚本,因此该库已被弃用。整个流程在提案文档中进行了记录,更改可以在以下拉取请求中进行验证

因此,此库将被存档。

节流

Build Status Coverage Status Latest Stable Version Total Downloads License

这是为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许可证授权。