Skip to content

BrWay CC v1.1.0

Latest

Choose a tag to compare

@kevind3v kevind3v released this 28 Oct 15:40

Grupos com função

group() aceita uma função com as rotas do grupo. Dentro dela, $this é o router. No fim, o grupo volta ao que era, sem precisar de group(null).

$router->group("admin", function () {
    $this->get("/", "Admin:home");               // /admin
    $this->get("/user/{id}", "Admin:user");      // /admin/user/{id}

    $this->group("report", function () {
        $this->get("/{year}", "Report:year");    // /admin/report/{year}
    }, Admin::class);
}, Auth::class);

$router->get("/contato", "Web:contact");         // fora do grupo
  • Middlewares do grupo vão no 3º parâmetro.
  • Grupo dentro de grupo soma o caminho e os middlewares: primeiro os do grupo de fora, depois os do de dentro e por último os da rota.
  • O namespace alterado dentro da função vale só ali dentro.
  • Também funciona com o router no parâmetro: function (Router $router) { ... }.
  • Um grupo com função fecha o grupo aberto sem função antes dele.

O formato antigo ($router->group("admin", Auth::class) seguido das rotas) continua funcionando como antes.