perritu/router

Simple -yet powerfull- PHP Router

v2.0.1 2025-03-23 21:47 UTC

This package is auto-updated.

Last update: 2025-05-23 22:22:06 UTC


README

A lightweight, simple, yet blazing fast PHP router.

Packagist Version Packagist PHP Version Packagist License Codacy Badge

FOSSA Status

Features

  • Supports for DELETE, GET, HEAD, OPTIONS, PATCH, POST and PUT request methods.
  • Routing shortcuts.
    • Router::DELETE(), Router::GET(), Router::HEAD(), etc.
  • Static and dynamic PCRE-based routing.
  • Custom Path and/or HTTP-Method call override.
  • Use of Path\to\public::method callback.
  • Subrouting / route prefixes.
  • Subnamespace / namespace prefixes.
  • Namespace mapping.

Requirements

Perritu/Router can run just fine out-of-the-box (even without Composer).

The best way to implement is, of course, through composer, yet, it can be implemented without it.

All you need is PHP 8.1 or greater and any URL rewriting technique.

Installation.

There are 2 ways of install.

  • Using composer. (Recomended)
    • composer require perritu/router
  • Direct download.
    • Downlad and place the Router.php file outside your publicly accessible directory, so any call must be performed throug your code flow.
    • Do a require_once import from your code flow.
    require_once(PROJECT_ROOT .'/include/perritu/router.php');

Usage

Once imported, do a use statement to start using the router, then, start with your routing definitions.

Bare example:

// Require statement
require_once('../vendor/autoload.php'); // Or router.php if not using composer.

use Perritu\Router\Router;

// Router definition
Router::GET('/', function() { echo 'Hello World!'; });

You can read the documentation in the DOCS.

External links.

Codacy: https://app.codacy.com/gh/Perritu/Router/dashboard

Packagist: https://packagist.org/packages/perritu/router

FOSSA: https://app.fossa.com/projects/git%2Bgithub.com%2FPerritu%2FRouter?ref=badge_large