Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/11/2013, 10:32
Avatar de nanotime
nanotime
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cd. Guayana
Mensajes: 145
Antigüedad: 13 años
Puntos: 6
Respuesta: ¿Es recomendable un método que haga muchas cosas en un modelo?

Sí, de hecho acabo de terminar lo que sería el método que responde a distintos parámetros (en teoría) y bueno, la verdad es que funciona a medias.

Código PHP:
Ver original
  1. public function get($id = false, $slug = false, $categ = false)
  2.     {
  3.         if (!$id && !$slug && $categ) {
  4.             $query = $this->db->get('cursos');
  5.             return $query->result_array();
  6.         }
  7.         elseif ($slug) {
  8.             $query = $this->db->get_where('cursos', array('slug' => $slug));
  9.            
  10.             if ($query->num_rows() == 1) {
  11.                 return $query->row_array();
  12.             }
  13.             else {
  14.                 return false;
  15.             }
  16.         }
  17.         elseif ($categ) {
  18.             $query = $this->db->get_where('cursos', array('categoria' => $categ));
  19.  
  20.             if ($query->num_rows() == 1) {
  21.                 return $query->row_array();
  22.             }
  23.             else {
  24.                 return false;
  25.             }
  26.         }
  27.         elseif ($id) {
  28.             $query = $this->db->get_where('cursos', array('id' => $id));
  29.             return $query->row_array();
  30.          }
  31.     }

Técnicamente lo único que funciona es que mientras que sean false los parámetros, devuelve la consulta de todos los items de la base de datos y que cuando se le pase el id devuelva el id de la consulta, pero las categorías y el slug ... hmmm no dan señales de vida ...

Respecto a que depende de cada programador, sí, supongo que si pero a veces me pregunto si no termina siendo mas confuso tener get_curso_id, get_curso_categ, get_curso_slug, etc,etc ... quizá para este proyecto pequeño funcione por ser pocas consultas pero es que el código para cada una es prácticamente idéntico y estaría rompiendo el paradigma DRY, que no es que sea pecado pero no sé si vaya a crecer el código, sin mencionar que estos mismos métodos se usan para un servicio rest.