Routers

As rotas do Luna pode ser definida pelo URI no diretório /routes de forma bastante simples:

use \App\Controllers\Pages;

$router->get('/', [
    function($request, $response) {
        return Pages\Example::getPage($request, $response);
    }
]);

Métodos de roteador disponíveis:

$router->get($uri, [$callback]);
$router->post($uri, [$callback]);
$router->put($uri, [$callback]);
$router->patch($uri, [$callback]);
$router->delete($uri, [$callback]);
$router->options($uri, [$callback]);

Também é possível definir múltiplos métodos para um mesmo URI e callback:

$router->match(['get', 'post'], $uri, [$callback]);
$router->any($uri, [$callback]);

Parâmetros de rota

As rotas podem receber parâmetros personalizados para definição de url amigáveis:

Os parâmetros opcionais podem ser obtidos através da $request:

É recomendado que utilize o método acima para obter os parâmetros enviados pela rota, porém ainda é possível obtê-los com uma variável explicita:

Parâmetros opcionais

Pode ser necessário especificar um parâmetro de rota que nem sempre esteja presente na requisição. Para fazer isso basta adicionar um ? após o nome do parâmetro.

Parâmetros opcionais não informados na requisição serão definidos como NULL.

Rotas de erros

Alguns erros comuns podem ser tratados diretamente na definição da rota para personalizar a página de retorno:

Também é possível definir uma rota padrão para que seja apresentada em caso de erro:

Rotas sem controllers

Embora não recomendável ainda é possível criar rotas que retornam diretamente sem um controller especificado:

Redirecionamento

Para realizar um redirecionamento execute a função redirect() presente no objeto da rota:

Last updated