CodeIgniter

Rotas no CodeIgniter do início ao fim

As rotas no CodeIgniter são as grandes responsáveis pela criação de URLs amigáveis para a sua aplicação, e é sobre elas que você irá aprender nas próximas linhas.

Rotas Reservadas

O CodeIgniter possui algumas rotas reservadas, são elas:

default_controller: responsável por definir o controller/method da aplicação que responderá pela página principal dela

404_override: rota responsável por definir o controller/method que responderá pelos erros 404 da aplicação

translate_uri_dashes: não chega a ser uma rota, pois recebe um valor booleano, mas permite substituir automaticamente os traços (‘-‘) na URL, pois classes e métodos não devem possuir o traço no nome

Rotas Mágicas

As rotas mágicas são a sequência controller/method utilizada nas URLs. Por exemplo:

Você tem um controller chamado Posts e um método chamado Visualizacao, logo a rota mágica seria: posts/visualizacao

Não é necessário criar a definição da rota no arquivo application/config/routes.php para que ela funcione.

Você pode fazer uso das rotas mágicas pra qualquer chamada controller/method da sua aplicação.

Rotas Personalizadas

As rotas personalizadas são as mais utilizadas, pois elas são essencias para organizar sua aplicação de modo que as URLs se tornem intuitivas e além do mais, ajudem com as técnicas de SEO para indexação do site em motores de busca.

Essas rotas são montadas no arquivo application/config/routes.php e seguem o seguinte padrão:

$route['sua/rota/personalizada'] = "controller/method";

Os blocos da URL personalizada são divididos pela “/” e chamados de nós.

Uma URL personalizada pode ter quantos nós forem necessários, podendo incluir inclusive expressões regulares para limitar o valor que cada nó poderá receber, além de poder conter conteúdo estático para os nós.

O CodeIgniter possui 2 wildcards para serem utilizados nas rotas:

(:num) -> permite que apenas números sejam adicionados ao nó

(:any) -> permite que qualquer caracter seja adicionado ao nó, exceto a “/”, que e o caracter delimitador do nó

Exemplos de rotas

Vejamos alguns exemplos de rotas bem comuns que são utilizados em aplicações.

Rota para abrir uma página para visualização de conteúdo de um post

$route['post/(:any)'] = "posts/visualizacao/$1";

Rota para abrir uma lista paginada de posts

$route['posts/(:num)'] = "posts/listagem/$1";

Rota para uma URL de busca com 3 parametros


$route['busca/(:any)/(:any)/(:any)'] = "buscas/index/$1/$2/$3";

Para recuperar o conteúdo de um nó da URL no controller você deve utilizar o seguinte método:

// rota => "busca/todos/homens/28

//busca por todos os usuarios homens com 28 anos de idade

$this->uri->segment(1); //busca

$this->uri->segment(2); //todos

$this->uri->segment(3); //homens

$this->uri->segment(4); //28

Definindo verbos HTTP para as rotas

Os verbos HTTP são GET, POST, PUT, DELETE e PATCH, e são utilizados para definir qual o método de requisição esta sendo solicitado. São muito utilizados na criação de aplicações RESTfull. Esses verbos são case-insensitives, ou seja, tanto faz informá-los com letras maiúsculas ou minúsculas.

Vejamos um exemplo de como definir os verbos HTTP nas rotas:

$route['usuario/(:num)']['get'] = "usuarios/visualizar";
$route['usuario']['post'] = "usuarios/inserir";
$route['usuario/(:num)']['put'] = "usuarios/atualizar";
$route['usuario/(:num)']['delete'] = "usuarios/remover";

As rotas são muito importantes na sua aplicação. Antes de criá-las, faça uma análise da sua aplicação e crie rotas intuitivas, não só para facilitar a navegação do usuário mas tembém para facilitar o desenvolvimento.