En CodeIgniter (tanto en la versión 3 como en la 4), mantener un orden estructurado de los métodos en controladores y modelos facilita la legibilidad y mantenimiento del código. Aunque no hay una regla estricta, se recomienda seguir una estructura lógica y coherente.
Controller
)
El controlador en CodeIgniter gestiona las solicitudes HTTP y la lógica de la aplicación. Un orden estándar para los métodos es el siguiente:
1. Constructor (__construct()
) → Inicialización del controlador.
2. Métodos de carga de vistas (index, show, etc.) → Métodos públicos para mostrar datos.
3. Métodos CRUD (Create, Read, Update, Delete).
4. Métodos auxiliares o privados → Métodos internos de apoyo.
Usuarios.php
)
class Usuarios extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('Usuario_model'); // Cargar el modelo
}
// 1. Método principal (vista principal)
public function index() {
$data['usuarios'] = $this->Usuario_model->obtener_usuarios();
$this->load->view('usuarios/index', $data);
}
// 2. Mostrar un usuario específico
public function mostrar($id) {
$data['usuario'] = $this->Usuario_model->obtener_usuario($id);
$this->load->view('usuarios/mostrar', $data);
}
// 3. Crear un nuevo usuario
public function crear() {
$this->load->view('usuarios/crear');
}
public function guardar() {
$datos = array(
'nombre' => $this->input->post('nombre'),
'email' => $this->input->post('email')
);
$this->Usuario_model->insertar_usuario($datos);
redirect('usuarios');
}
// 4. Editar un usuario
public function editar($id) {
$data['usuario'] = $this->Usuario_model->obtener_usuario($id);
$this->load->view('usuarios/editar', $data);
}
public function actualizar($id) {
$datos = array(
'nombre' => $this->input->post('nombre'),
'email' => $this->input->post('email')
);
$this->Usuario_model->actualizar_usuario($id, $datos);
redirect('usuarios');
}
// 5. Eliminar un usuario
public function eliminar($id) {
$this->Usuario_model->eliminar_usuario($id);
redirect('usuarios');
}
// 6. Métodos auxiliares o privados
private function verificar_sesion() {
if (!$this->session->userdata('logueado')) {
redirect('login');
}
}
}
Model
)
El modelo se encarga de la lógica de base de datos. Un orden recomendado es:
1. Constructor (__construct()
) → Carga de la base de datos.
2. Métodos de obtención de datos (GET
).
3. Métodos de inserción (INSERT
).
4. Métodos de actualización (UPDATE
).
5. Métodos de eliminación (DELETE
).
6. Métodos auxiliares (consultas avanzadas, cálculos, etc.).
Usuario_model.php
)
class Usuario_model extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->database(); // Cargar base de datos
}
// 1. Obtener todos los usuarios
public function obtener_usuarios() {
return $this->db->get('usuarios')->result_array();
}
// 2. Obtener un usuario por ID
public function obtener_usuario($id) {
return $this->db->get_where('usuarios', array('id' => $id))->row_array();
}
// 3. Insertar un usuario
public function insertar_usuario($datos) {
return $this->db->insert('usuarios', $datos);
}
// 4. Actualizar un usuario
public function actualizar_usuario($id, $datos) {
$this->db->where('id', $id);
return $this->db->update('usuarios', $datos);
}
// 5. Eliminar un usuario
public function eliminar_usuario($id) {
return $this->db->delete('usuarios', array('id' => $id));
}
// 6. Métodos auxiliares
public function contar_usuarios() {
return $this->db->count_all('usuarios');
}
}
Mantener un orden lógico en controladores y modelos en CodeIgniter mejora la legibilidad y el mantenimiento del código. En general:
Controller
)
✅ Constructor
✅ Métodos de carga de vistas (index()
, show()
)
✅ Métodos CRUD (crear()
, guardar()
, editar()
, actualizar()
, eliminar()
)
✅ Métodos auxiliares o privados
Model
)
✅ Constructor
✅ Métodos GET
(obtener registros)
✅ Métodos INSERT
(crear registros)
✅ Métodos UPDATE
(modificar registros)
✅ Métodos DELETE
(eliminar registros)
✅ Métodos auxiliares
Este orden no es obligatorio, pero sigue las buenas prácticas de desarrollo en CodeIgniter. 🚀
Jorge García
Fullstack developer