Rutas en CodeIgniter 4

En CodeIgniter 4, las rutas son una parte fundamental para definir cómo las solicitudes URL se relacionan con los controladores y métodos en tu aplicación. Este sistema te da flexibilidad y un control total sobre las URL de tu proyecto. En esta guía, exploraremos desde lo básico hasta configuraciones más avanzadas.

¿Qué son las rutas en CodeIgniter 4?

Las rutas son las reglas que determinan qué controlador debe ejecutarse en respuesta a una solicitud específica. Por ejemplo, cuando un usuario accede a https://tusitio.com/blog, el sistema de rutas define qué acción ejecutar y qué contenido devolver.

Configuración básica de rutas

Todas las rutas en CodeIgniter 4 se configuran en el archivo app/Config/Routes.php. Aquí se define el comportamiento predeterminado de las URL.

Ejemplo básico de una ruta:

$routes->get('home', 'HomeController::index');

En este caso:

  • La URL https://tusitio.com/home ejecutará el método index del controlador HomeController.

Tipos de rutas disponibles

CodeIgniter 4 soporta varios métodos HTTP, lo que permite manejar diferentes tipos de solicitudes.

MétodoUso comúnEjemplo
GETObtener información (lectura)$routes->get('productos', 'ProductoController::index');
POSTEnviar datos al servidor (crear/actualizar)$routes->post('productos', 'ProductoController::store');
PUTActualizar datos existentes$routes->put('productos/(:num)', 'ProductoController::update/$1');
DELETEEliminar un recurso$routes->delete('productos/(:num)', 'ProductoController::delete/$1');

Uso de parámetros en las rutas

Puedes definir rutas con parámetros dinámicos.

$routes->get('blog/(:segment)', 'BlogController::view/$1');

Aquí, (:segment) es un comodín que captura parte de la URL y lo pasa como argumento al método del controlador. Por ejemplo:

  • URL: https://tusitio.com/blog/codeigniter
  • Método llamado: view('codeigniter')

Otros comodines disponibles:

  • (:num) – Captura solo números.
  • (:alpha) – Captura solo letras.
  • (:alphanum) – Captura letras y números.
  • (:any) – Captura cualquier texto.

Agrupación de rutas

Para mantener el código limpio, puedes agrupar rutas relacionadas:

$routes->group('admin', function($routes) {
$routes->get('usuarios', 'AdminController::usuarios');
$routes->get('configuracion', 'AdminController::configuracion');
});

Esto creará rutas como:

  • /admin/usuarios
  • /admin/configuracion

Rutas con filtros

Los filtros permiten ejecutar lógica antes o después de que una ruta se resuelva. Por ejemplo, puedes proteger rutas con autenticación:

$routes->get('dashboard', 'DashboardController::index', ['filter' => 'auth']);

Rutas por defecto

CodeIgniter 4 incluye una ruta predeterminada para manejar solicitudes sin una URL explícita:

$routes->get('/', 'HomeController::index');

Esta ruta se ejecuta cuando se accede al dominio raíz, como https://tusitio.com.

Guía en vídeo

Conclusión

El sistema de rutas de CodeIgniter 4 es potente y versátil. Ya sea que estés creando una aplicación pequeña o un proyecto más complejo, entender cómo definir rutas correctamente mejorará la organización y el funcionamiento de tu proyecto.

¿Tienes alguna duda sobre rutas? ¡Déjala en los comentarios!