Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucaswxp

[TUTORIAL] Roteamento no CakePHP (routes) - Básico

Recommended Posts

Ae pessoal o/

Outro tutorial sobre CakePHP, e hoje falarei um pouco sobre rotas.

O roteamento no CakePHP é um recurso muito interessante, nos permite mapear URL's em actions do controllers. Os seus maiores usos são: SEO, ocultar informações, acessibilidade, segurança e etc.

Pré-requisitos

 

* Conhecimento básico sobre o framework CakePHP

 

Conteúdo

 

As rotas são definidas no arquivo "app/config/routes.php". Por padrão, no CakePHP, já existe uma rota definida.

 

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

Esta rota mapeia a url "/" (raiz) para a action display('home') do controller pages.

Veja mais detalhes sobre o método connect na API:

 

Normalmente uma requisição à:

 

http://127.0.0.1/alunos

Mapearia para a action index() do controller alunos. Porém, com rotas é possível alterar este comportamento, fazendo com que esta url mapeia para um action/controller diferencia do normal.

Vamos fazer com que quando requisitado Alunos::index(), seja mapeado para Alunos::adicionar().

 

Router::connect('/alunos/index', array('controller' => 'alunos', 'action' => 'adicionar'));

O primeiro parâmetro de Router::connect() informa a URL a casar. E o segundo o que fazer com esta URL quando casada. Ainda existe um terceiro parâmetro, porém veremos ele num outro post.

 

Como pode ver, mapeamos facilmente a URL /alunos/index para Alunos::adicionar().

 

É possível utilizar expressões regulares nas URL's a casar. Veja um exemplo que só mapeará actions do controller Alunos se for string.

 

Router::connect('/alunos/[A-Za-z]+', array('controller' => 'alunos', 'action' => 'adicionar'));

É possível ainda controlar o método de requisição.

Veja um exemplo que só casará a URL se o usuário estiver efetuando uma requisição POST.

 

Router::connect('/alunos/add', array('controller' => 'alunos', 'action' => 'adicionar', '[method]' => 'POST'));

Este é um bom uso de segurança, para certificar de que o usuário só veja o que você espera.

 

É isso ai, ficamos por aqui. Vimos só um pouco dos poderes das rotas, porém entraremos em partes mais avançada num futuro tutorial =D

Até a próxima o/

 

FONTE: http://lucaspelegrino.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa contribuição lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.