Middleware

Middleware

Sistema de middleware para interceptar requisições antes do handler da rota.

Registrar Middleware

routeMiddleware('auth', function ($next, $param) {
    if (!estaLogado()) {
        redirect('/login');
        return; // Não chama $next — interrompe
    }
    $next(); // Chama o próximo middleware ou o handler
});

Aplicar em Rotas

// Em rota específica
routeGET('/admin', 'adminController@index', '', ['auth']);

// Com parâmetro
routeGET('/admin', 'adminController@index', '', ['auth:admin']);

// Em grupo de rotas
routeGroup('/admin', 'Admin', function () {
    routeGET('/usuarios', 'usuarioController@index');
    routeGET('/config', 'configController@index');
}, ['auth']);

Múltiplos Middleware

routeMiddleware('log', function ($next) {
    error_log('Requisição: ' . $_SERVER['REQUEST_URI']);
    $next();
});

routeMiddleware('csrf', function ($next) {
    if (!csrf_verify()) {
        http_response_code(403);
        exit;
    }
    $next();
});

// Aplicar vários
routePOST('/dados', 'dadosController@salvar', '', ['csrf', 'log']);

Ordem de Execução

Os middleware são executados na ordem em que aparecem no array. Cada middleware decide se chama $next() para prosseguir ou interrompe o fluxo.