emilio / php-router

Simple PHP router
MIT License
28 stars 12 forks source link

PHP Router

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Contributors

Composer setup example

{
    "require": {
        "ecoal95/php-router": "dev-master"
    }
}

Usage

See the examples/ to see a basic example and remember to use the htaccess provided there!

Get urls

<a href="https://github.com/emilio/php-router/blob/master/<?php echo $router->url('/users/username'); ?>">Username's profile</a>

Get the current url

$router->url();

Blog example

$router = new Router\Router('/blog');

$router->add('/', function() {
    echo 'homepage';
});

$router->add('/about', function() {
    echo 'about page';
});

$router->add('/([0-9]{4})', function($year) {
    echo $year . ' years active';
});

$router->add('/([0-9]{4})/([0-9]{2})', function ($year, $month) {
    echo 'archives from ' . $year . '/' . $month;
});

$router->add('/(.*)', function($slug) {
    // For example:
    if( Article::where('slug', '=', $slug)->first() ) {
        echo 'article';
    } else {
        echo '404';
    }
});

$router->post('/posts/create', function() {
    echo 'post created';
});

$router->post('/posts/update/([0-9]+)', function($post_id){
    // Update post with id = $post_id
});

// compare url with all registered routes
$router->route();