2025-04-13 17:45:52 +02:00
2025-04-13 17:44:14 +02:00
2025-04-13 17:44:14 +02:00
2025-04-13 17:45:52 +02:00
2025-04-13 17:44:14 +02:00

Route

A lightweight routing system for handling HTTP requests.

Features:

  • Define routes for specific HTTP methods (GET, POST, PUT, DELETE, etc.).
  • Apply middleware to routes or groups of routes.
  • Group routes under a common prefix for better organization.
  • Support for route parameters (e.g., /user/$id) and optional parameters (e.g., /user/$id?).

Example:

// Define a GET route
Route::get('/home', function () {
    echo "Welcome to the homepage!";
});

// Define a middleware
Route::before(function () {
    echo "Middleware executed before the route callback.";
});

// Define a POST route with middleware
Route::post('/submit', function () {
    echo "Form submitted!";
}, function () {
    echo "Middleware executed before the callback.";
});

// Group routes under a common prefix
Route::group('/admin', function () {
    // Define a middleware for the group; it will not affect the outer routes
    Route::before(function () {
       echo "Admin Middleware executed.";
    });
    Route::get('/dashboard', function () {
        echo "Admin Dashboard";
    });
    Route::post('/settings', function () {
        echo "Admin Settings";
    });
});

Installation

Composer

Composer needs to know where to locate the package. Add the repository to your project by declaring it in the composer.json file.

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/WilliamAAK/Route"
        }
    ],
    "require": {
        "williamaak/route": "dev-master"
    }
}

Fetch the package by running

composer install

Manual

Its all in a single file; include it in your project like so

require '/YourPath/Route.php'

Usage

use WilliamAAK\Http\Route;

Route::get('/', fn() => echo 'hello world');

See Route.php and read the comments for more information

Access directly

The simplest way to access your routes. Just put the file in your favorite folder and run it!

For example

http://your.site/folder/index.php/your/route

Rewrite requests

The more sexy way of doing it.

For example

http://your.site/your/route

NGINX

With PHP already configured, add this to the server block of your configuration to make requests that don't match a file on your server to be sent to your front controller and begin routing.

location / {
    try_files $uri $uri/ /index.php?$query_string;
}
Description
A lightweight routing system for handling HTTP requests.
Readme WTFPL 59 KiB
Languages
PHP 100%