Rotas - Como utilizar?

200 views
Skip to first unread message

Diogo Machado

unread,
Sep 29, 2011, 2:12:57 PM9/29/11
to kohan...@googlegroups.com
Olá Pessoal, bom, estou utilizando o kohana 3.2 a pouco tempo e não consegui entender como utilizar rotas, mas creio que é um recurso muito legal. Alguém poderia indicar um exemplo básico?

Get

unread,
Sep 29, 2011, 2:45:38 PM9/29/11
to kohan...@googlegroups.com
Não tem mistério.

Se você estiver desenvolvendo um módulo, defina as rotas no init.php do módulo, se for na aplicação defina no bootstrap.php (antes da rota padrão que vem no arquivo).

Exemplos:

A rota a seguir reconhece: noticias/ e notícias/pagina, onde página é um número e não é obrigatório (entre parênteses)
O parametro "pagina" você recupera no controller usando $this->request->param('pagina');

Route::set('noticias/pagina', 'noticias(/<pagina>)',array(
'pagina' => '[0-9]+'
))
->defaults(array(
'controller' => 'noticias',
'action'     => 'lista',
'pagina' => 1
)); 

A rota a seguir reconhece: imoveis/cidade/bairro/id
perceba que em "defaults" foi setado o parametro "directory", para que você não precise colocar o controller sempre na raiz da pasta controllers.
Route::set('imoveis/detalhe/identificador', 'imoveis/<cidade>/<bairro>/<id>',array(
'cidade' => '[a-zA-z0-9-_]+',
'bairro' => '[a-zA-z0-9-_]+',
'id' => '[0-9]+',
))
->defaults(array(
'directory' => 'imobiliaria',
'controller' => 'imoveis',
'action'     => 'detalhe',
'id' => '',
));


Você também pode usar o directory, o controller e a action como parametros da sua rota, ficando algo assim:

A rota a seguir reconhece: imoveis/detalhes/id ou imoveis/impressao/id
Route::set('imoveis/action/identificador', 'imoveis/<action>/<id>',array(
'action'  => 'detalhes|impressao',
'id' => '[0-9]+',
))
->defaults(array(
'controller'  => 'imoveis',
'action'      => 'detalhes',
'id' => '',
));

A página de documentação do kohana é bem detalhada e possui exemplos:

Espero ter ajudado.

@rafaelget


2011/9/29 Diogo Machado <tec...@diogomachado.net>
Olá Pessoal, bom, estou utilizando o kohana 3.2 a pouco tempo e não consegui entender como utilizar rotas, mas creio que é um recurso muito legal. Alguém poderia indicar um exemplo básico?

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/CXn8t3OY9IwJ.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

Diogo Machado

unread,
Sep 29, 2011, 3:37:57 PM9/29/11
to kohan...@googlegroups.com
Obrigado pelos exemplos, creio que vai clarear melhor meus estudos.

Alex Mello

unread,
Sep 29, 2011, 3:53:23 PM9/29/11
to kohan...@googlegroups.com
Posso fazer uma pergunta ja que sou iniciante em frameworks e ainda mais iniciante ainda em Kohana.

Tenho uma dúvida referente a módulos, na verdade mais referente ao conceito.

Minha necessida é criar dois site um front e um admin, devo criar dois modulos é isto ?

tipo assim:

kohana
     -> application
     -> admin (modules)     
     -> front ( modules)


Alguém pode me dar uma luz na estrutura ?

grato
Alex




Em 29 de setembro de 2011 16:37, Diogo Machado <tec...@diogomachado.net> escreveu:
Obrigado pelos exemplos, creio que vai clarear melhor meus estudos.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/IHNMHiDXD6oJ.

Get

unread,
Sep 29, 2011, 4:08:40 PM9/29/11
to kohan...@googlegroups.com
Não há nada que te empeça de trabalhar assim. 

Mas aqui agente faz o seguinte:

Admin --> modules
Front --> application

@rafaelget

2011/9/29 Alex Mello <alex7...@gmail.com>

felipe moraes

unread,
Sep 29, 2011, 6:08:57 PM9/29/11
to kohan...@googlegroups.com
Interessante estes exemplos ..

Só lembrando que o primeiro parâmetro é um identificador da rota, mas não influencia nela ..

imoveis/detalhe/identificador não tem efeito .. poderia ser imoveldetalheidentificador

O que realmente influencia são os demais parâmetros ..

No segundo vem as variáveis do ER ...

<controller> <action> <id> <pagina> <cidade> <bairro>. Sendo que podem vir algumas constantes ..

No terceiro, opcional, você coloca o ER para tratar a rota.

(diretorio1|diretorio2|diretorio3) lista de diretórios aceitáveis

'cidade'  => '[a-zA-z0-9-_]+',
'bairro'  => '[a-zA-z0-9-_]+',
'id' => '[0-9]+',

E, por aí vai. Consulte o manual/guide para saber qual ER é mais adequada.

Após criar sua rota, com o método default você configura alguns valores padrões.

Basicamente é isto, me corrijam se errei algo.

Diogo Souza Machado

unread,
Sep 29, 2011, 6:19:31 PM9/29/11
to kohan...@googlegroups.com
Enfim, qual é a função real de se usar uma rota?
Diogo Souza Machado
Técnico em Informática


felipe moraes

unread,
Sep 29, 2011, 6:35:20 PM9/29/11
to kohan...@googlegroups.com
Fugir da rota padrão

pagina/view/2
controller/action/id

Por default, você não poderia ter mais de 3 parametros na url .. as rotas te permitem expandir isso, levando o request para o caminho correto. Se o request for mal feito, url errada, a página não será encontrada.

Alex Mello

unread,
Sep 29, 2011, 4:12:00 PM9/29/11
to kohan...@googlegroups.com
Valeu Rafael, vou começar a estudar um pouco o Kohana

Então qualquer ajuda é bem vinda e também acho legal seguir um padrão.
vou tentar começar uma estrutura qualquer coisa eu dou uma perguntada aqui.

Abs
Reply all
Reply to author
Forward
0 new messages