La carpeta application
La carpeta más importante, la que más merece nuestra atención, es la de **/application** y todas sus subcarpetas. Básicamente, esta carpeta contendrá nuestros modelos, vistas, controladores, y otro código (helpers y extensiones de clase). Por consiguiente, esta carpeta es donde realizaremos el 99% de nuestro trabajo.
La carpeta está compuesta por las siguientes subcarpetas:
Diferentes subcarpetas que contiene la carpeta application
| Nombre | Descripción |
|---|---|
| cache | Contendrá todas las páginas cacheadas de nuestra aplicación. |
| config | Contiene una serie de ficheros importantes para gestionar la configuración de nuestra aplicación. Existen ficheros para gestionar la base de datos y otras variables que CodeIgniter necesita utilizar (tales como la URL base de la aplicación, que librerías y helpers se cargarán de forma automática, etc.) |
| controllers | Contendrá los controladores que nosotros crearemos para nuestra aplicación. |
| core | Si queremos extender él núcleo de CodeIgniter, las clases deben colocarse en esta carpeta /application/core/. |
| errors | Contiene plantillas estándares para páginas de error 404, errores de PHP y otros. Podremos modificar estas plantillas para adaptarlas al diseño de nuestra aplicación. |
| helpers | En esta carpeta introduciremos helpers específicos para nuestra aplicación. |
| hooks | Contiene "hooks" (mejoras) creadas específicamente para nuestra aplicación. Los hooks, tal y como hemos comentado anteriormente, es la mejor forma de mejorar el núcleo de CodeIgniter. |
| language | Fichero específico de idioma para la aplicación. Sino existe cogerá el fichero del núcleo. |
| libraries | Contiene librerías específicas creadas para nuestra aplicación.No confundir esta carpeta (la cual se usa para almacenar nuestra propias librerías) con la carpeta system/libraries la cual contiene librerías específicas del núcleo de CodeIgniter. |
| logs | Carpeta que usará nuestra aplicación para escribir eventos y errores realizados por la aplicación o por el usuario. |
| models | Contendrá los modelos creados para nuestra aplicación. |
| third_party | Contendrá paquetes de mini-aplicaciones que podemos usar en nuestra aplicación. No es una librería, ya que puede incorporar sus propios archivos de configuración, helpers, archivos de idioma, bibliotecas y modelos. Es una buena manera de empaquetar aplicaciones y usarlas en diferentes proyectos. |
| views | Contendrá las vistas creadas para nuestra aplicación. |
Dentro de la carpeta **/application/** tenemos otras carpetas muy importantes que son: **controllers/** (controladores), la carpeta **models/**(modelos) y la carpeta **views/**(vistas). Todo nuestro trabajo se centrará en crear controladores, modelos y vistas dentro de esta carpeta para nuestra aplicación.
Otra carpeta muy importante es **config/**, que contiene varios archivos de configuración importantes. Antes de empezar a trabajar en un proyecto tendremos configurar una serie de parámetros de configuración específicos de nuestra aplicación. Vamos a ver en detalle cada uno de los ficheros que contiene esta carpeta.