As rotas no CodeIgniter 4 são responsáveis por direcionar as requisições para os controladores corretos, garantindo que cada URL execute a ação esperada dentro da aplicação. A configuração das rotas é feita no arquivo app/Config/Routes.php
, onde é possível definir regras personalizadas para estruturar melhor o acesso às páginas.
Tipos de Rotas no CodeIgniter 4
O CodeIgniter 4 suporta diferentes tipos de rotas para atender às necessidades de qualquer aplicação.
Rotas Simples
O exemplo abaixo cria uma rota para acessar um controlador chamado BlogController
quando o usuário acessar /blog
na URL:
$routes->get('blog', 'BlogController::index');
Essa rota direciona a URL /blog
para o método index()
do BlogController
.
Rotas com Métodos HTTP Específicos
O CodeIgniter permite definir rotas específicas para cada método HTTP:
$routes->get('post', 'PostController::index'); // Apenas para requisições GET
$routes->post('post/create', 'PostController::create'); // Apenas para POST
$routes->put('post/update/(:num)', 'PostController::update/$1'); // Apenas para PUT
$routes->delete('post/delete/(:num)', 'PostController::delete/$1'); // Apenas para DELETE
Isso garante um melhor controle sobre as ações realizadas na aplicação.
Passagem de Parâmetros na Rota
O CodeIgniter permite capturar parâmetros da URL e repassá-los ao controlador.
Passando um ID numérico:
$routes->get('usuario/(:num)', 'UsuarioController::exibir/$1');
Essa rota aceita URLs como /usuario/15
, onde 15
será passado como argumento para o método exibir($id)
do UsuarioController
.
Passando strings como parâmetro:
$routes->get('categoria/(:segment)', 'CategoriaController::listar/$1');
O parâmetro (:segment)
aceita qualquer valor textual, como /categoria/tecnologia
.
Aceitando múltiplos parâmetros:
$routes->get('produto/(:num)/(:segment)', 'ProdutoController::detalhes/$1/$2');
Essa rota aceita URLs como /produto/10/smartphone
, passando 10
e smartphone
como parâmetros para o controlador.
Rotas CLI (Command Line Interface)
O CodeIgniter 4 permite definir rotas específicas para serem executadas via linha de comando, úteis para tarefas automatizadas (Cron jobs), geração de relatórios e manutenção do sistema. Essas rotas são registradas no arquivo Routes.php
usando $routes->cli()
. Por exemplo, para criar um comando acessível via terminal, basta adicionar:
$routes->cli('limpar-cache', 'UtilitariosController::limparCache');
Com isso, a execução do comando php spark limpar-cache
chamará o método limparCache()
do UtilitariosController
. Isso permite a criação de scripts administrativos sem necessidade de uma interface web.
Grupos de Rotas
A criação de grupos de rotas ajuda a organizar melhor a estrutura da aplicação. No exemplo abaixo, todas as rotas dentro do grupo admin
compartilham o mesmo prefixo:
$routes->group('admin', function($routes) {
$routes->get('dashboard', 'AdminController::dashboard');
$routes->get('usuarios', 'AdminController::usuarios');
$routes->get('configuracoes', 'AdminController::configuracoes');
});
Isso permite acessar as rotas usando:
/admin/dashboard
/admin/usuarios
/admin/configuracoes
Rotas com Filtros
Os filtros permitem proteger rotas específicas. Um exemplo comum é exigir autenticação para acessar a área administrativa:
$routes->group('admin', ['filter' => 'auth'], function($routes) {
$routes->get('dashboard', 'AdminController::dashboard');
});
Com isso, apenas usuários autenticados poderão acessar a rota /admin/dashboard
.
Conclusão
O sistema de rotas do CodeIgniter 4 é flexível e permite uma configuração detalhada para atender diferentes cenários. Definir rotas corretamente ajuda a manter a aplicação organizada e melhora a segurança e a eficiência do sistema.
Se você ou sua empresa precisa de suporte para desenvolvimento em CodeIgniter 4, a Saldaris Consultoria pode ajudar. Entre em contato pelo formulário no final da página para saber mais sobre nossos serviços.