PHPackages                             fuwasegu/guardrail - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. fuwasegu/guardrail

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

fuwasegu/guardrail
==================

Laravel static analysis tool - Verify API routes call required methods (authorization, logging, etc.)

0.9.1(4mo ago)247↓100%MITPHPPHP ^8.2CI passing

Since Dec 23Pushed 4mo agoCompare

[ Source](https://github.com/fuwasegu/guardrail)[ Packagist](https://packagist.org/packages/fuwasegu/guardrail)[ RSS](/packages/fuwasegu-guardrail/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (13)Used By (0)

Guardrail
=========

[](#guardrail)

A static analysis tool for Laravel that verifies API route controllers always call required methods (authorization, logging, etc.).

Table of Contents
-----------------

[](#table-of-contents)

- [Problem](#the-problem)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
    - [Scan Paths](#scan-paths)
    - [Entry Points](#entry-points)
    - [Excluding Routes](#excluding-routes)
    - [Filtering by HTTP Method](#filtering-by-http-method)
    - [Required Calls](#required-calls)
    - [Paired Calls](#paired-calls)
- [CLI](#cli)
- [CI Integration](#ci-integration)
- [How It Works](#how-it-works)
- [Limitations](#limitations)

The Problem
-----------

[](#the-problem)

```
class OrderController
{
    public function destroy(int $id): JsonResponse
    {
        // Forgot to call $this->authorizer->authorize()!
        return response()->json($this->useCase->execute($id));
    }
}
```

- **Code Review** - Humans miss things
- **Testing** - Hard to write tests for "method must be called"
- **Middleware** - Can't apply to all cases

Guardrail **automatically blocks in CI**.

Installation
------------

[](#installation)

```
composer require --dev fuwasegu/guardrail
```

Quick Start
-----------

[](#quick-start)

**1. Create config file** (`guardrail.config.php`)

```
