andregalastri / galastri-framework-old

Microframework PHP simples para criação de sites e sistemas WEB.
1 stars 0 forks source link

Nova funcionalidade: rotas dinâmicas. #30

Closed andregalastri closed 4 years ago

andregalastri commented 4 years ago

Nova funcionalidade: rotas dinâmicas.

Adicionada funcionalidade de rotas dinâmica. Nas rotas, sempre que uma classe iniciar com /? significa que esta parte da rota agirá como um parâmetro, ou seja, seu valor é variável.

Rota fixa

Leve em conta a rota abaixo:

'/' => [
  '/rotaA' => [
    '/pagina1' => [...],
    '/pagina2' => [...],
  ],
];

A rota acima é um exemplo de rota fixa. A rota fixa não permite valores dinamicos nos parâmetros da URL, ou seja, ou a URL segue este padrão, ou ela é tida como inválida:

localhost/rotaA/pagina1 -> rota válida localhost/rotaA/pagina2 -> rota válida localhost/rotaX/pagina1 -> rota inválida

Rota dinâmica

Agora leve em conta a rota abaixo:

'/' => [
  '/?rotaA' => [
    '/pagina1' => [...],
    '/pagina2' => [...],
  ],
];

No exemplo acima, o microframework está esperando que exista uma classe chamada RotaA, mas na URL, esta parte da rota pode conter qualquer valor, pois este é considerado um valor dinâmico que será armazenado como um parâmetro. Ou seja:

localhost/rotaA/pagina1 -> rota válida localhost/rotaB/pagina2 -> rota válida localhost/XYZABC/pagina1 -> rota válida.

Ou seja, a parte que diz respeito à rotaA na configuração da rota, por começar com /? significa que ela pode conter qualquer valor.

Na classe RotaA e em qualquer classe subsequente, basta utilizar o método $this->getClassAsParameter('rotaA') para recuperar o valor recebido da URL.