Skip to content
Ultra simple and fast (only 5 functions!!!) route => callback mapper for PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Sphido / Routing

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Ultra simple and fast (only 5 functions!!!) route => callback mapper


// map against all types of requests
/route/map('/', function() {});

// map handler against method(s) + route
/route/map('GET', '/', function() {});
/route/map(['GET', 'POST'], '/account/new', function() {});

// map handler against a route(s)
/route/map(['/kontakt', '/contact'], function () {});

// map handler against everything
/route/map(function () {});

Error Handlers

// map handler against error codes, first argument is the error code
/route/map(404, function ($code) {});
/route/map([400, 401, 403, 404], function ($code) {});
/route/map(500, function ($code) {});

Route Parameters

// if you have a symbols in any route
/route/map('GET', '/users/<id>', function ($params) {
  $id = $params['id'];

// attach regex rules to your route 
/route/map('GET', '/users/<id:[0-9]+>', function ($params) {
  $id = $params['id'];

// language selection in route
/route/map('GET', '/<lang:[a-z]{2}>/page', function ($params) {
  $lang = $params['lang'];


/app/dispatch(); // process request and dispatch results

or with some params

/route/map('/', function($config) {});
/app/dispatch($config = new Config);

or as your app object

class app {
  function __invoke($method, $path, $me) {
    // handle $path/$method as you need
  function __destruct() {
/route/map(new app);

Possible changes

  • default values <param=cz:[a-z]{2}> ???
  • case sensitivity vs. insensitivity ??? currently is case sensitive
  • optional parametter (<param>)? ???
  • optional strings <name>(.html)? ????
You can’t perform that action at this time.