PHPackages                             kaye/routing - 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. [Framework](/categories/framework)
4. /
5. kaye/routing

ActiveLibrary[Framework](/categories/framework)

kaye/routing
============

Route attributes for Laravel

v1.0.4(today)50MITPHPPHP ^8.1

Since Jun 22Pushed todayCompare

[ Source](https://github.com/Gedekay/route-attributes)[ Packagist](https://packagist.org/packages/kaye/routing)[ RSS](/packages/kaye-routing/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (1)Versions (6)Used By (0)

kaye routing
============

[](#kaye-routing)

Un package Laravel permettant de définir les routes directement dans les contrôleurs via des PHP Attributes (`#[Get]`, `#[Post]`, etc.), sans utiliser `routes/web.php` ou `routes/api.php`.

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

[](#installation)

Installe le package via Composer :

```
composer require kaye/routing
```

Configuration
-------------

[](#configuration)

Le service provider est auto-enregistré grâce à l'auto-discovery de Laravel.

Si nécessaire, ajoute-le manuellement dans `config/app.php` :

```
'providers' => [
    // ...
    RouteAttributes\RouteAttributesServiceProvider::class,
],
```

---

Utilisation
-----------

[](#utilisation)

### Exemple simple

[](#exemple-simple)

```
use RouteAttributes\Attributes\Get;
use RouteAttributes\Attributes\Post;

class UserController extends Controller
{
    #[Get('/users', name: 'users.index')]
    public function index()
    {
        return response()->json(['users']);
    }

    #[Post('/users', name: 'users.store')]
    public function store()
    {
        return response()->json(['created']);
    }
}
```

### Préfixe de route

[](#préfixe-de-route)

Utilise `#[Prefix]` pour définir un préfixe commun pour toutes les routes d'un contrôleur :

```
use RouteAttributes\Attributes\Get;
use RouteAttributes\Attributes\Post;
use RouteAttributes\Attributes\Prefix;

#[Prefix('/api/v1')]
class UserController extends Controller
{
    #[Get('/users')]  // Route: /api/v1/users
    public function index() {}

    #[Post('/users')] // Route: /api/v1/users
    public function store() {}
}
```

Le préfixe peut également être défini au niveau de la méthode :

```
use RouteAttributes\Attributes\Get;
use RouteAttributes\Attributes\Prefix;

class UserController extends Controller
{
    #[Get('/profile')]
    #[Prefix('/api')]  // Priorité sur le préfixe de classe
    public function profile() {} // Route: /api/profile
}
```

### Middleware

[](#middleware)

Utilise `#[Middleware]` pour assigner des middlewares à vos routes :

```
use RouteAttributes\Attributes\Get;
use RouteAttributes\Attributes\Post;
use RouteAttributes\Attributes\Middleware;

class UserController extends Controller
{
    #[Get('/users')]
    #[Middleware('auth')]  // Middleware unique
    public function index() {}

    #[Post('/users')]
    #[Middleware(['auth', 'throttle:60,1'])]  // Multiples middlewares
    public function store() {}
}
```

### Combinaison de Préfixe et Middleware

[](#combinaison-de-préfixe-et-middleware)

```
use RouteAttributes\Attributes\Get;
use RouteAttributes\Attributes\Post;
use RouteAttributes\Attributes\Prefix;
use RouteAttributes\Attributes\Middleware;

#[Prefix('/api/v1')]
#[Middleware('auth')]
class UserController extends Controller
{
    #[Get('/users')]  // Route: /api/v1/users, Middleware: auth
    public function index() {}

    #[Post('/users')] // Route: /api/v1/users, Middleware: auth
    public function store() {}

    #[Get('/public')]
    #[Middleware('throttle:60,1')]  // Surcharge du middleware
    public function publicEndpoint() {} // Route: /api/v1/public, Middleware: throttle:60,1
}
```

---

Routes disponibles
------------------

[](#routes-disponibles)

MéthodeAttributExempleGET`#[Get]``#[Get('/users')]`POST`#[Post]``#[Post('/users')]`PUT`#[Put]``#[Put('/users/{id}')]`PATCH`#[Patch]``#[Patch('/users/{id}')]`DELETE`#[Delete]``#[Delete('/users/{id}')]`### Attributs supplémentaires

[](#attributs-supplémentaires)

AttributCibleExemple`#[Prefix]`Classe/Méthode`#[Prefix('/api/v1')]``#[Middleware]`Classe/Méthode`#[Middleware('auth')]` ou `#[Middleware(['auth', 'throttle'])]`---

Exemple complet
---------------

[](#exemple-complet)

```
use RouteAttributes\Attributes\Get;
use RouteAttributes\Attributes\Post;
use RouteAttributes\Attributes\Put;
use RouteAttributes\Attributes\Delete;
use RouteAttributes\Attributes\Prefix;
use RouteAttributes\Attributes\Middleware;

#[Prefix('/api/v1')]
#[Middleware('auth:api')]
class ProductController extends Controller
{
    #[Get('/products')]
    public function index() {}

    #[Get('/products/{id}')]
    public function show($id) {}

    #[Post('/products')]
    #[Middleware('throttle:10,1')]  // Limité à 10 requêtes par minute
    public function store() {}

    #[Put('/products/{id}')]
    public function update($id) {}

    #[Delete('/products/{id}')]
    public function destroy($id) {}
}
```

---

Comment ça fonctionne ?
-----------------------

[](#comment-ça-fonctionne-)

Ce package :

1. **Scanne** les contrôleurs Laravel
2. **Lit** les PHP Attributes
3. **Enregistre** automatiquement les routes via `Route::get()`, `Route::post()`, etc.
4. **Applique** les préfixes et middlewares définis

---

Avantages
---------

[](#avantages)

✔ Plus besoin de `routes/api.php` ou `routes/web.php`
✔ Code plus propre et centralisé
✔ Préfixes et middlewares directement dans le contrôleur
✔ Inspiré des frameworks modernes (Symfony, NestJS)
✔ Compatible Laravel 10+
✔ Support PHP 8.0+

---

Limitations
-----------

[](#limitations)

- Les routes sont chargées au boot de l'application
- Peut nécessiter un cache optimisé pour les gros projets
- Nécessite PHP 8.0 ou supérieur

Contribution
------------

[](#contribution)

Les PR sont les bienvenues !

1. Fork le projet
2. Crée une branche `feature/ma-feature`
3. Commit tes changements
4. Ouvre une Pull Request

---

License
-------

[](#license)

MIT License - voir le fichier [LICENSE](LICENSE) pour plus de détails.

---

Support
-------

[](#support)

Si ce projet t'aide, n'hésite pas à mettre une star sur GitHub !

---

**Made with pour la communauté Laravel**

```

**Résumé des ajouts :**

1.  **Section Préfixe** - Documentation complète avec exemples
2.  **Section Middleware** - Documentation complète avec exemples
3.  **Section Combinaison** - Exemple d'utilisation simultanée
4.  **Tableau des attributs supplémentaires** - Vue d'ensemble rapide
5.  **Exemple complet enrichi** - Avec middlewares et préfixes
6.  **Roadmap mise à jour** - Fonctionnalités cochées
7.  **Explications améliorées** - Ajout de l'application des préfixes/middlewares

```

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

5

Last Release

0d ago

PHP version history (2 changes)v1.0.0PHP ^8.0

v1.0.1PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/264111200?v=4)[Gedekay](/maintainers/Gedekay)[@Gedekay](https://github.com/Gedekay)

---

Top Contributors

[![Gedekay](https://avatars.githubusercontent.com/u/264111200?v=4)](https://github.com/Gedekay "Gedekay (21 commits)")

### Embed Badge

![Health badge](/badges/kaye-routing/health.svg)

```
[![Health](https://phpackages.com/badges/kaye-routing/health.svg)](https://phpackages.com/packages/kaye-routing)
```

###  Alternatives

[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k95.4M293](/packages/laravel-horizon)[laravel/sail

Docker files for running a basic Laravel application.

1.9k205.7M1.3k](/packages/laravel-sail)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M183](/packages/laravel-ai)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M142](/packages/laravel-mcp)[illuminate/routing

The Illuminate Routing package.

1419.2M2.9k](/packages/illuminate-routing)[laravel/surveyor

Static analysis tool for Laravel applications.

86121.4k12](/packages/laravel-surveyor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
