mrsems/router-php

A simple router dependency injection library

v1.0.1 2025-07-21 22:44 UTC

This package is not auto-updated.

Last update: 2025-07-21 22:50:50 UTC


README

Un routeur PHP simple, léger et réutilisable pour vos applications web.

Installation

Via Composer

composer require mrsems/router-php

Guide d'utilisation

1. Configuration des routes

Créez un fichier routes.php à la racine de votre projet :

<?php
return [
  
       '/' => [
        'controller' => App\Controllers\SecurityController::class,
        'method' => 'login',
        'middlewares' => [],
        'methods' => ['GET', 'POST'],
    ],
    'client/dashboard' => [
        'controller' => App\Controllers\UserController::class,
        'method' => 'index',
        'middlewares' => ['auth'],
        'methods' => ['GET'],
    ],
    'client/{id}' => [
        'controller' => App\Controllers\UserController::class,
        'method' => 'show',
        'middlewares' => ['auth'],
        'methods' => ['GET'],
    ],

    
];

2. Configuration des middlewares

Créez un fichier middlewares.php :

<?php
return [
    'auth' => \App\Middlewares\AuthMiddleware::class,
];

3. Création d'un middleware

Exemple de middleware d'authentification :

<?php
namespace App\Middlewares;

class AuthMiddleware
{
    public function __invoke()
    {
        // Vérifier si l'utilisateur est connecté
        if (!isset($_SESSION['user'])) {
            header('Location: /login');
            exit;
        }
    }
}

4. Création d'un contrôleur

Exemple de contrôleur :

<?php
namespace App\Controllers;

class HomeController
{
    public function index()
    {
        echo "Bienvenue sur la page d'accueil !";
    }
}

5. Initialisation du routeur

Dans votre fichier index.php :

<?php
require 'vendor/autoload.php';

use App\Router\Router;

// Charger les configurations
$routes = require 'routes.php';
$middlewares = require 'middlewares.php';

// Résoudre la route
Router::resolve($routes, $middlewares);

Structure du projet

votre-projet/
├── vendor/
├── App/
│   ├── Controllers/
│   │   ├── HomeController.php
│   │   └── DashboardController.php
│   └── Middlewares/
│       └── AuthMiddleware.php
├── routes.php
├── middlewares.php
├── index.php
└── composer.json

Fonctionnalités

  • ✅ Support des méthodes HTTP (GET, POST, etc.)
  • ✅ Système de middlewares
  • ✅ Contrôleurs organisés par classes
  • ✅ Configuration simple via fichiers PHP