A sharp little routing library for PHP 5.4+



Super Sharp Router

A simple, elegant routing library for PHP 5.4+.

Inspired by (and largely extracted from) Silex routing and built on Symfony components.


Using Composer:

$ composer require allmarkedup/super-sharp-router


The hello world example:

$router = new Amu\SuperSharp\Router();

$router->get('/hello', function(){
    return 'Hello world!';

echo $router->match('/hello'); // Prints: Hello World!

Matching against the current request and returning a response object:

use Amu\SuperSharp\Http\Response;
use Symfony\Component\Routing\Exception\RouteNotFoundException;

$router = new Amu\SuperSharp\Router();
$router->get('/', function(){
    return new Response('This is the homepage');

try {
    $response = $router->match(); // matches against the current request
} catch (ResourceNotFoundException $e) {
    $response = new Response('No matching route found', 404);


HTTP-verb based methods, dynamic route parameters and fluent route configuration:


$router->post('/articles', function(){
    return 'Article added!';

$router->get('/articles/{slug}', function($slug){
    return Example::find($slug);

$router->get('/users/{id}', function($id){
    return Example::find($id);
->assert('id', '\d') // $id route parameter must be a digit
->requireHttps();    // Must be HTTPS

Running tests

Tests can be run using PHP Unit from the command line:

$ vendor/bin/phpunit

The project also includes a Grunt watch task to run the PHP Unit tests when files are updated which you can use for your convenience.