Clase Configuracion(config)
La Clase Config provee un medio de recuperar las preferencias de configuracion. Esas preferencias pueden provenir del archivo por defecto (application/config/config.php) o de tus propios archivos de configuración.
Nota: Esta clase es inicializada automáticamente por el sistema, por tanto, no es necesario hacerlo manualmente.
Anatomía de un archivo de Configuracion
Por defecto, CodeIgniter tiene un archivo primario de configuracion, ubicado en application/config/config.php. Si abres un archivo usando tu editor de texto verás que los items son almacenados en un arreglo llamado $config.
Puedes agregar tus propios intems de configuración a este archivo, o si lo prefieres, puedes mantenerlos en forma separada (asumiendo que necesitas items de configuración), simplemente debes crear tu archivo de configuración y guardarlo en la carpeta config.
Nota: Si creas tu propio archivo de configuración con el mismo formato del archivo primario de configuración, y guardándolo en un arreglo llamado $config. CodeIgniter lo manejará de una forma inteligente esos archivos, así, no existirá un conflicto inclusive si el arreglo tiene el mismo nombre (asumiendo que el índice del arreglo NO es llamado de la misma forma que en el otro)..
Cargando un archivo de Configuración
Nota: CodeIgniter automáticamente carga el archivo primario de configuración (application/config/config.php), por lo tanto, solo necesitarás cargar un archivo de configuración, si lo has creado por tu cuenta.
Hay dos formas de cargar un archivo de configuración:
- Carga Manual
Para cargar uno de tus archivos de configuración, usarás la siguiente función con el controlador que lo necesita:
$this->config->load('nombre_archivo');Donde nombre_archivo es el nombre de tu archivo de configuración, sin la extensión .php
Si necesitas cargar multiples archivos de configuración, normalmente, ellos deberan ser fusionados dentro de un arreglo maestro de configuración. Las colisiones de nombres pueden ocurrir, sin embargo, si tienes nombres de indices de arreglos identicos en diferentes archivos de configuración. Para evitar colisiones puedes poner en TRUE y cada archivo de configuración será almacenado en un arreglo correspondiente al nombre del archivo de configuración. Por ejemplo:
// Guardado en un arreglo con este prototipo: $this->config['blog_settings'] = $config
$this->config->load('blog_settings', TRUE);Por favor vea mas abajo la seccion titulada Recuperando Items de Configuración para aprender como recuperar elementos de configuración seteados de esta forma.
El tercer parámetro te permite suprimir los errores en el caso de que un archivo de configuracion no exista:
$this->config->load('blog_settings', FALSE, TRUE); - Auto-carga
Si encuentras que necesitas un archivo de configuración en particular globalmente, puedes hacer que este se cargue automáticamente por el sistema. Para hacer esto, abre el archivo autoload.php, ubicado en application/config/autoload.php, y agrega tu archivo de configuracion como se indica en el archivo .
Recuperando elementos de configuración
Para recuperar un elemento de tu archivo de configuración, use la siguiente función:
$this->config->item('nombre del item');
Donde item name es el indice del arreglo $config que quieres recuperar. Por ejemplo, para recuperar la opción de lenguaje debes hacer esto:
$lang = $this->config->item('language');
La función retorna FALSE (booleano) si el item que tratas de recuperar no existe.
Si estas usando el segundo parámetro de la funcion $this->config->load con el fin de asignar tus elementos de configuración a un indice específico puedes hacerlo especificando el nombre del indice en el segundo parametro de la funcion $this->config->item(). Ejemplo:
//Cargando un archivo de configuración llamado blog_settings.php y asignándolo a un índice llamado "blog_settings"
$this->config->load('blog_settings', 'TRUE');
//Recuperando un elemento de configuración llamado site_name contenido en el arreglo blog_settings
$site_name = $this->config->item('site_name', 'blog_settings');
//Una forma alterna de especificar el mismo elemento:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];
Estableciendo un Elemento de Configuración
Si desea establecer un elemento de configuración de forma dinámica, o cambiar una ya existente, puede hacerlo del siguiente modo:
$this->config->set_item('nombre_elemento', 'valor_elemento');
Where item_name is the $config array index you want to change, and item_value is its value.
Funciones de Ayuda
La clase de configuración tiene las siguientes funciones de ayuda:
$this->config->site_url();
Esta función recupera la URL de tu sitio, junto con el valor del índice que has especificado en el archivo de configuración.
$this->config->system_url();
Esta función recupera la URL de tu system folder (carpeta de sistema).