Funciones Asistentes
Los asistentes, como el nombre sugiere, le ayudan con tareas. Cada archivo de asistente es simplemente una colección de funciones de una categoría particular. Existe un Asistente de URL, que ayuda en la creación de hipervínculos, está el Asistente de Formularios que ayuda a crear elementos de formularios, , Asistente de Texto que realiza varias rutinas de formato,Asistente de Cookie establece y lee cookies, Asistente de Archivos ayuda a trabajar con archivos, etc.
A diferencia de muchos otros sistemas en CodeIgniter, los Asistentes no están escritos en un formato Orientado a Objetos. Son simples funciones de procedimiento. Cada función de asistente realiza una tarea específica, sin dependencia en otras funciones.
CodeIgniter no carga Archivos Auxiliares por defecto, así que el primer paso en el uso de Asistentes es cargarlos. Una vez cargados, se vuelven disponibles globalmente en su controlador y vistas.
Los asistentes son típicamente guardados en su directorio system/helpers. Alternativamente puede crear una carpeta llamada helpers dentro de su carpeta application y guardarlos allí. CodeIgniter primero buscará en su direcotrio system/application/helpers. Si el directorio no existe o el asistente especificado no está ubicado allí, CI buscará entonces en su carpeta global system/helpers.
Cargando un Asistente
Cargar un archivo asistente es bastante simple usando la función siguiente:
$this->load->helper('nombre');
Dónde nombre es el nombre del archivo del asistente, sin la extensión .php o la parte "helper".
Por ejemplo, para cargar el archivo Asistente de URL, que es nombrado url_helper.php, haría así:
$this->load->helper('url');
Un asistente puede ser cargado en cualquier lugar dentro de su función controlador (o incluso dentro de sus archivos Vista, aunque no es una buena práctica), siempre que lo cargue antes de usarlo. Puede cargar sus asistentes en el constructor de su controlador, para que esté disponible automáticamente en cualquier función, o puede cargarlo en una función específica que lo necesite.
Nota: La función de carga de Asistente no devuelve un valor, así que no intente asignarselo a una variable. Simplemente úselo como se muestra.
Cargando Múltiples Asistentes
Si necesita cargar más de un asistente puede especificarlos en un arreglo, así:
$this->load->helper( array('asistente1', 'asistente2', 'asistente3') );
Auto-cargando Asistentes
Si descubre que necesita un asistente particular globalmente a lo largo de su aplicación, puede decirle a CodeIgniter que lo auto-cargue durante la inicialización del sistema. Esto se hace abriendo el archivo application/config/autoload.php y agregando el asistente al arreglo autoload.
Usando un Asistente
Una vez que haya cargado el Archivo Asistente conteniendo la función que tiene intención de usar, puede llamarla de la forma estándar de PHP.
Por ejemplo, para crear un hipervínculo usando la función anchor() en uno de sus archivos de vista, haría esto:
<?=anchor('blog/comentarios', 'Cliquee aquí');?>
Donde "Cliquee aquí" es el nombre del hipervínculo, y "blog/comentarios" es la URI al controlador/función al que desee dirigir.
"Extendiendo" Asistentes
Para "extender" Asistentes, creer un archivo en su carpeta application/helpers/ con nombre idéntico al Asistente existente, pero con préfijo con MY_ (este item es configurable. Vea abajo.).
Si todo lo que necesita hacer es agregar alguna funcionalidad a un asistente existente - tal vez agregar una función o dos, o cambiar como una función asistente en particular opera - entonces es exagerado reemplazar el asistente entero con su versión. En este caso, es mejor simlpemente "extender" el Asistente. El término "extender" es usado como aproximación ya que las funciones Asistentes son procedimientos discretos y no pueden ser extendidos en el sentido tradicional de programación. Bajo este velo, se da la habilidad para agregar funciones a los Asistentes proveidos, o modificar como una función de Asistente operante.
Por ejemplo, para extender el nativo Asistente de Arreglo creará un archivo llamado application/helpers/MY_array_helper.php, y agrega o sobreescribe funciones:
// cualquiera_en_arreglo() no es en el Asistente de Arreglo, así que define una nueva función
function cualquiera_en_arreglo($aguja, $pajar)
{
$aguja = (is_array($aguja)) ? $aguja : array($aguja);
foreach ($aguja as $item)
{
if (in_array($item, $pajar))
{
return TRUE;
}
}
return FALSE;
}
// random_element() está incluido en el Asistente de Arreglo, así que sobreescribe la función nativa
function random_element($arreglo)
{
shuffle($arreglo);
return array_pop();
}
Estableciendo Su Propio Prefijo
El prefijo del nombre de archivo "extendiendo" Asistentes es el mismo usado para extender librerías y clases de núcleo. Para establecer su propio prefijo, abra su archivo application/config/config.php y busque este item:
$config['subclass_prefix'] = 'MY_';
Por favor note que todas las librerías nativas de CodeIgniter son prefijadas con CI_ así que NO use esto como prefijo.
żAhora qué?
En la Tabla de Contenidos encontrará una lista de todos los Archivos Asistentes disponibles. Navegue cada uno para ver que hacen.