Continuando nossa jornada sobre o Silex Framework, neste post falarei sobre rotas dinâmicas. Se você não está familiarizado com o Silex, confira nosso primeiro post Conhecendo e instalando o Silex.
Rotas dinâmicas são a possibilidade de passar parâmetros nas rotas da sua aplicação. O Silex possui diversos métodos para facilitar o uso dessa dinâmica em suas rotas.
Utilização
Para tornar sua rota dinâmica, veja o código abaixo:
O que nos interessa nesse momento, são as linhas de 5 e 6. Na linha 5 definimos nossa rota users, que receberá requisições do tipo GET
. Perceba que entre chaves {}
, incluímos um elemento chamado name
, ou seja, esse é o parâmetro da nossa rota users. Agora tudo que passarmos na URL após chamada a rota, poderemos manipular em nosso callback, mas para isso devemos passar o mesmo parâmetro da rota como parâmetro do nosso callback, como mostrado na mesma linha 5. Na linha 6 apenas retornamos como saída o valor passado na rota. Por exemplo, se acessarmos no navegador o seguinte link https://url_de_minha_app.com.br/users/Nando
, teríamos como saída:
Olá, Nando
Se você deseja passar mais parâmetros, apenas separe os mesmos com /
, como mostrado abaixo:
Valores Default
Se você deseja definir um valor default para seus parâmetros de rota, é muito simples. O Silex possui um método para isso. Através do método value()
você definirá valores padrões para estes parâmetros, e quando acessar suas rotas sem informar nenhum valor esperado, entra em ação os valores definidos por padrão. Para usar o método value()
:
Na linha 6 defino o método value
que têm como primeiro parâmetro o nome definido para o parâmetro da rota, e o segundo parâmetro do método value
recebe o valor default que você desejar. Sempre que acessarmos a rota users sem definir nenhum valor após a mesma, nosso parâmetro name
receberá o valor NULL. A partir daí você fica livre para tratar como quiser a lógica da sua aplicação.
O método convert()
Se você deseja garantir o tipo do valor passado ou apenas deseja conversões simples com estes valores, o método convert
foi feito para tal operação. Para utilizá-lo:
O método recebe 2 parâmetros: o primeiro é o nome do parâmetro informado na rota e o segundo um callback, onde realizamos nossas conversões. Neste exemplo, garanto apenas que os valores passados na rota users
serão de fato do tipo string
, como mostrado na linha 6 do código acima.
Conclusão
Vimos como é simples trabalhar com rotas dinâmicas em nossas aplicações Silex, e com os métodos auxiliares nossa aplicação de rotas fica ainda mais robusta.
Na sessão ‘Usage’ da documentação do Silex, você encontrará mais opções além das mostradas aqui.