abtswath/limiter

There is no license information available for the latest version (dev-main) of this package.

dev-main 2024-05-15 14:22 UTC

This package is auto-updated.

Last update: 2024-05-15 14:23:57 UTC


README

Limiter 是一个支持多种限流算法与存储后端的 API 限流器。

Limiter 要求 PHP >= 8.2。

目录

安装

composer require abtswath/limiter

代码结构

UML

基本用法

Limiter 支持 PSR-4 自动加载。

<?php
require_once 'vendor/autoload.php';

固定窗口算法

<?php

$store = new Limiter\Store\MemoryStore();
$limiter = new Limiter\FixedWindowLimiter(store: $store, limit: 10, windowSize: 60);

$limiter->attempt($key);

滑动日志算法

<?php

$store = new Limiter\Store\MemoryStore();
$limiter = new Limiter\SlidingLogLimiter(store: $store, limit: 10, windowSize: 60);

$limiter->attempt($key);