romaluck/php-router

A simple router for PHP

v1.0.1 2025-05-09 20:20 UTC

This package is auto-updated.

Last update: 2025-06-09 20:33:45 UTC


README

General info

This is a simple router for PHP

Requirements

  • PHP >= 8.2
  • Symfony/http-foundation >= 7.2

Installation

composer require romaluck/php-router

Usage

// Require composer autoloader
require __DIR__ . '/vendor/autoload.php';

$request = Request::createFromGlobals();

// Create Router instance
$router = new Romaluck\PhpRouter\Router($request);

// Define routes
// ...

// Run it!
$router->send();

Routing

$router->match(
    Route::get('/', IndexController::class)->addMiddleware(new AuthMiddleware()),
    Route::post('/upload', UploadImageController::class),
)

Controller

//Controller should implement ControllerInterface
class IndexController implements ControllerInterface
{
    public function __invoke(Request $request): Response

Middleware

use Romaluck\PhpRouter\Middleware\MiddlewareInterface;
use Romaluck\PhpRouter\Middleware\RequestHandlerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

//Middleware should implement MiddlewareInterface
class AuthMiddleware implements MiddlewareInterface
{

    public function process(Request $request, RequestHandlerInterface $handler): Response