PHPackages                             cocoon-projet/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. cocoon-projet/routing

ActiveLibrary[Framework](/categories/framework)

cocoon-projet/routing
=====================

A simple and powerful PHP router

1.0.3(1y ago)014MITPHPPHP ^8.0CI passing

Since Oct 22Pushed 1y ago1 watchersCompare

[ Source](https://github.com/cocoon-projet/routing)[ Packagist](https://packagist.org/packages/cocoon-projet/routing)[ RSS](/packages/cocoon-projet-routing/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (11)Versions (5)Used By (0)

[![codecov](https://camo.githubusercontent.com/2b45735715dcbdbcc8f7c636aea1f97756f148f7e50f039b7e9efdb3c01c6710/68747470733a2f2f636f6465636f762e696f2f67682f636f636f6f6e2d70726f6a65742f726f7574696e672f67726170682f62616467652e7376673f746f6b656e3d394f573230544b37354b)](https://codecov.io/gh/cocoon-projet/routing) [![PHP Composer](https://github.com/cocoon-projet/routing/actions/workflows/ci.yml/badge.svg)](https://github.com/cocoon-projet/routing/actions/workflows/ci.yml)

cocoon-projet/routing
=====================

[](#cocoon-projetrouting)

> Un routeur PHP moderne et flexible pour vos applications web

Description
-----------

[](#description)

cocoon-projet/routing est une librairie de routage PHP 8 qui offre une API simple et intuitive pour gérer les routes de votre application web. Elle utilise FastRoute en interne et supporte les fonctionnalités modernes de PHP 8.

Caractéristiques
----------------

[](#caractéristiques)

- Compatible PHP 8.0+
- Support des méthodes HTTP (GET, POST, PUT, DELETE, PATCH, HEAD)
- Routes nommées
- Groupes de routes
- Patterns de validation de paramètres
- Cache des routes
- Support des contrôleurs avec autowiring
- Interface Facade pour une utilisation simplifiée
- Middleware PSR-15
- Tests unitaires complets

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

[](#installation)

```
composer require cocoon-projet/routing
```

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

[](#utilisation)

### Configuration de base

[](#configuration-de-base)

```
use Cocoon\Routing\Router;

$router = Router::getInstance();

// Route simple
$router->get('/home', 'App\Controllers\HomeController@index');

// Route avec paramètres
$router->get('/user/{id}', 'App\Controllers\UserController@show');

// Route avec validation de paramètres
$router->get('/post/{id}', 'App\Controllers\PostController@show')
    ->with('id', '[0-9]+');
```

### Utilisation de la Facade

[](#utilisation-de-la-facade)

```
use Cocoon\Routing\Facade\Route;

// Routes simples
Route::get('/home', 'App\Controllers\HomeController@index');
Route::post('/user', 'App\Controllers\UserController@store');

// Route avec plusieurs méthodes
Route::match(['GET', 'POST'], '/api/users', 'App\Controllers\Api\UserController@handle');

// Route avec validation de paramètres
Route::get('/post/{id}', 'App\Controllers\PostController@show')
    ->with('id', '[0-9]+');

// Routes nommées
Route::get('/user/{id}', 'App\Controllers\UserController@show')
    ->name('user.show');
```

### Groupes de routes

[](#groupes-de-routes)

```
// Groupe de routes avec préfixe
Route::group('admin', function() {
    Route::get('/dashboard', 'App\Controllers\Admin\DashboardController@index');
    Route::get('/users', 'App\Controllers\Admin\UserController@index');
});

// Groupe avec validation de paramètres
Route::group('api', function() {
    Route::get('/users/{id}', 'App\Controllers\Api\UserController@show')
        ->with('id', '[0-9]+');
});
```

### Routes RESTful

[](#routes-restful)

```
// Création de routes RESTful pour une ressource
Route::resource('posts', 'App\Controllers\PostController');
```

Cela crée automatiquement les routes suivantes :

- GET /posts (index)
- GET /posts/add (add)
- POST /posts/create (create)
- GET /posts/{id} (show)
- GET /posts/{id}/edit (edit)
- PUT /posts/{id} (update)
- DELETE /posts/{id} (delete)

### Middleware

[](#middleware)

```
use Cocoon\Routing\Middleware\DispatcherMiddleware;

// Configuration du middleware
$middleware = new DispatcherMiddleware($router);

// Utilisation avec un framework PSR-15
$response = $middleware->process($request, $handler);
```

### Cache des routes

[](#cache-des-routes)

```
// Activation du cache des routes
$router->cache(true, __DIR__ . '/cache');
```

### Patterns de validation

[](#patterns-de-validation)

```
// Patterns prédéfinis
Route::get('/user/{id}', 'App\Controllers\UserController@show'); // {id} est automatiquement validé comme numérique

// Patterns personnalisés
Route::get('/post/{slug}', 'App\Controllers\PostController@show')
    ->with('slug', '[a-z0-9\-]+');

// Patterns multiples
Route::get('/category/{category}/post/{slug}', 'App\Controllers\PostController@show')
    ->withs([
        'category' => '[a-z]+',
        'slug' => '[a-z0-9\-]+'
    ]);
```

Tests
-----

[](#tests)

La librairie inclut une suite complète de tests unitaires. Pour exécuter les tests :

```
composer test
```

Pour générer un rapport de couverture de code :

```
composer test:coverage
```

Intégration Continue
--------------------

[](#intégration-continue)

Le projet utilise GitHub Actions pour l'intégration continue. Les tests sont exécutés automatiquement sur :

- PHP 8.0

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

[](#contribution)

Les contributions sont les bienvenues ! N'hésitez pas à :

1. Fork le projet
2. Créer une branche pour votre fonctionnalité
3. Commiter vos changements
4. Pousser vers la branche
5. Ouvrir une Pull Request

Licence
-------

[](#licence)

Ce projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance48

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

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 ~182 days

Total

4

Last Release

385d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5b019cffcdf77ab35448666ea712d4263ae3afd4bc0110de6a267936e3dba08d?d=identicon)[cocoon-projet](/maintainers/cocoon-projet)

---

Top Contributors

[![cocoon-projet](https://avatars.githubusercontent.com/u/28481301?v=4)](https://github.com/cocoon-projet "cocoon-projet (37 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[cakephp/authentication

Authentication plugin for CakePHP

1153.6M67](/packages/cakephp-authentication)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[neos/flow

Flow Application Framework

862.0M451](/packages/neos-flow)[cakephp/authorization

Authorization abstraction layer plugin for CakePHP

742.2M34](/packages/cakephp-authorization)[yiisoft/yii-middleware

Yii Middleware

21151.3k1](/packages/yiisoft-yii-middleware)

PHPackages © 2026

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