Via Composer
$ composer require bonfim/routerInclude the autoloader of composer:
<?php
include 'vendor/autoload.php';and define your routes:
use Bonfim\Router\Route;
Route::get('/', function () {
echo 'Hello World!';
});The routing is done by matching a URL pattern with a callback function:
Route::get('/', function () {
echo 'Hello World!';
});The callback can be any object that is callable. So you can use a regular function:
function hello()
{
echo 'Hello World!';
}
Route::get('/', 'hello');Or a class method:
class Greeting
{
public static function hello()
{
echo 'Hello World!';
}
}
Route::get('/', ['Greeting', 'hello']);Or an object method:
class Greeting
{
private $name;
public function __construct()
{
$this->name = 'Edson Onildo';
}
public function hello()
{
echo 'Hello, {$this->name}!';
}
}
$greeting = new Greeting();
Route::get('/', [$greeting, 'hello']);Routes are matched in the order they are defined. The first route to match a request will be invoked.
The router allows you to register routes that respond to any HTTP verb:
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);You may register a route that responds to multiple verbs using the match method:
Route::match(['get', 'post'], '/', function() {
//
});Or, you may even register a route that responds to all HTTP verbs using the any method:
Route::any('/', function() {
//
});You may specify named parameters in your routes which will be passed along to your callback function:
Route::get('/@name/@id', function($name, $id) {
echo "hello, $name ($id)!";
});You can also include regular expressions with your named parameters by using the : delimiter:
Route::get('/@name/@id:[0-9]{3}', function($name, $id) {
// This will match /bob/123
// But will not match /bob/12345
});Please see CHANGELOG for more information on what has changed recently.
$ composer testPlease see CONTRIBUTING and CODE_OF_CONDUCT for details.
If you discover any security related issues, please email inbox.edsononildo@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.