PHPackages                             musti/rate-policy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. musti/rate-policy

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

musti/rate-policy
=================

Laravel Rate Limit like Policies

1.0.0(3y ago)08MITPHP

Since Jan 18Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Musti132/RatePolicy)[ Packagist](https://packagist.org/packages/musti/rate-policy)[ RSS](/packages/musti-rate-policy/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

RatePolicy
==========

[](#ratepolicy)

[![Generic badge](https://camo.githubusercontent.com/3e9e6391a934c695d88a841b51975a0d90d1b0136d3f00b2e9aa4e1aa35307f4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e302532422d677265656e2e737667)](#)

### Description

[](#description)

This package is made for fun, it doesn't really have any useability, as this was more for learning how to create packages for Laravel specifically. It creates Rate limits for controllers like you would make Policies in laravel, it does this by User IP. Also makes it easier to handle ratelimitting for controllers.

### Installation

[](#installation)

Install via composer

```
 composer require musti/rate-policy
```

### Usage

[](#usage)

First you need to add the RateLimitRequests trait to base Controller

```
use Musti\RatePolicy\Traits\RateLimitRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests, RateLimitRequests;
}
```

Then create a policy via the command

```
 php artisan make:rate-policy {name}
```

This will create a RatePolicy under app/RatePolicies

Remember to change `protected $controller = Controller::class;` to desired controller

In any controller add this to the constructor

```
use Musti\RatePolicy\RatePolicy;

class ChannelController extends Controller
{
    public function __construct(Request $request)
    {
        $this->applyRatePolicy(ChannelRatePolicy::class);
    }
}
```

In the RatePolicy that you have created you can add a method for the controller index method like so

```
