Trabajando en proyectos cada vez más grandes, como programadores nos vemos obligados a aprender nuevas técnicas para acelerar el proceso de producción de código. Cuando repetimos fragmentos de nuestra aplicación en distintos archivos estamos ampliando las probabilidades de error, a parte de que tendremos que reparar el error en cada uno de los archivos.
Anteriormente hablaba de como usar helpers para no repetir código un mismo fragmento de código una y otra vez.
El tema le toca ahora a los views, que por costumbre acumulan una gran cantidad de código repetido.
Usualmente si tenemos una lista de casas, haríamos algo como:
Esta manera de mostrar las casas no muestra ningún problema hasta que tengamos que mostrar la lista de casas en otro sitio, entonces comenzaremos a repetirnos. Esto se puede evitar teniendo una plantilla que muestre una casa de manera individual
y la plantilla house.php:
Llevando toda la lógica a los controllers
El método load->view() acepta 3 parametros:
- El nombre del archivo del template
- Datos que le queramos pasar a la plantilla
- El tercer parametro permite cambiar el funcionamiento de la funcion para que retorne la data como una cadena de texto en vez de enviarla al browser.
Más información sobre la clase Loader en la guía de usuario de CodeIgniter
Sabiendo esto, podemos almacenar todo el output del loop en un string desde el controller y luego hacer solo algo como echo $houses; en el template.
Así se pueden limpiar un poco los views y evitar la repetición de código hasta cierto punto.
Entradas Relacionadas:





interesante!.. nunca habia experimentado nada con el 3er parametro del load->view (aunque creo que nuca lei de el). Bastante interesante.
Muy Interesante wilbur, la movilidad hay que tenerla pendiente tambien y bueno todo es cuestion de pensar un chin y ver como tratar de que todo funcione mejor, a sinceridad yo nunca he usado el 3er parametro