Rotas

Sistema de Rotas

Roteador dinâmico com suporte a parâmetros, grupos e middleware.

Rotas GET e POST

routeGET('/', 'homeController@index');
routePOST('/contato', 'contatoController@enviar');

Nota: Apenas routeGET() e routePOST() existem. Não há helpers para PUT, PATCH, DELETE ou ANY.

Parâmetros na URL

routeGET('/usuario/{id}', 'usuarioController@show');
routeGET('/post/{slug:[a-z-]+}', 'postController@show');

// Os parâmetros são passados como argumentos para a função
function show(string $id) { /* ... */ }
function show(string $slug) { /* ... */ }

Grupos de Rotas

routeGroup('/admin', 'Admin', function () {
    routeGET('/usuarios', 'usuarioController@index');
    routeGET('/usuarios/{id}', 'usuarioController@show');
});

Rotas Nomeadas

routeGET('/usuario/{id}', 'usuarioController@show', 'user.profile');

// Gerar URL pelo nome
$url = route('user.profile', ['id' => 5]); // /usuario/5

// Parâmetros não substituídos viram query string
$url = route('user.profile', ['id' => 5, 'page' => 2]); // /usuario/5?page=2

Página 404

route404(function () {
    http_response_code(404);
    view('errors/404');
});

Handler String

O formato é 'ArquivoController@funcao' onde ArquivoController é o arquivo em app/controllers/ sem .php, e funcao é a função dentro do namespace \Blumiga\ArquivoController.

// app/controllers/UserController.php
namespace Blumiga\UserController;

function listar() {
    // ...
}

// config/routes.php
routeGET('/users', 'UserController@listar');