承接 fathkoc/rate-limiter-library 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fathkoc/rate-limiter-library

Composer 安装命令:

composer require fathkoc/rate-limiter-library

包简介

A simple PHP library for rate limiting API requests.

README 文档

README

Introduction

This is a simple PHP Rate Limiting library designed to limit API requests or user actions over a defined time window. It helps protect your application from abusive users or bots by controlling the rate of requests.

Features

  • Define a limit on the number of requests per a certain time window.
  • Storage-agnostic, supports file storage, but can be extended to use Redis or other storage backends.
  • Easy to integrate with any PHP application.

Usage

  1. Install the library:

    If you're using composer, you can install it by running:

composer require fathkoc/rate-limiter-library


2. **Basic Example**:

```php
require_once __DIR__ . '/src/RateLimiter.php';
require_once __DIR__ . '/src/StorageInterface.php';
require_once __DIR__ . '/src/FileStorage.php';

use RateLimiterLibrary\RateLimiter;
use RateLimiterLibrary\FileStorage;

// Create storage folder if not exists
if (!is_dir(__DIR__ . '/storage')) {
    mkdir(__DIR__ . '/storage', 0777, true);
}

$storage = new FileStorage(__DIR__ . '/storage');
$rateLimiter = new RateLimiter(5, 60, $storage); // 5 requests in 60 seconds

$ipAddress = $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1';

if ($rateLimiter->isAllowed($ipAddress)) {
    // Request is allowed
    echo "Request successful.";
} else {
    // Too many requests
    http_response_code(429); // Too Many Requests
    echo "Rate limit exceeded.";
}
  1. Extend Storage:

    You can create your own storage class by implementing the StorageInterface and integrate Redis, Memcached, or any other storage system.

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-09-27