> Manuales > Manual de CodeIgniter

Qué son los helpers en el framework PHP CodeIgniter, cómo cargarlos, utilizarlos para resolver tareas habituales y configurar su carga automática.

Los helpers son una de las dos bibliotecas de código disponibles en CodeIgniter y la más sencilla de manejar en un principio, puesto que son funciones que están a nuestra disposición sin depender de ningún objeto. Lo veremos con detenimiento en este artículo del Manual de CodeIgniter.

En cualquier framework PHP, como nos podremos imaginar, se pone a nuestra disposición una biblioteca de funciones que resuelven las cosas típicas que podemos necesitar al realizar una aplicación web. De hecho, una de las ventajas de usar frameworks es justamento no tener que programar por nosotros mismos todas las funciones que se utilizan reiteradas veces en la mayoría de los sitios web profesionales. Así pues, los helpers son una de las bibliotecas de funciones que supongo esperábamos que CodeIgniter nos proporcionara.

Podemos decir que los helpers son juegos de funciones, ordenados por temática en diferentes paquetes, que nos ayudan en la realización de tareas habituales en las aplicaciones web. Existen helpers para muchas cosas distintas, como para trabajo con arrays, fechas, cookies, emails, URLs, formularios, etc.

Nota: En CodeIgniter disponemos de dos tipos de bibliotecas de códigos, Helper y Class. Los Helpers son funciones propiamente dichas y las Class son clases de programación orientada a objetos (POO). Su carga y utilización son ligeramente distinta, así que las veremos por separado. De momento quedémonos con que los helpers no dependen de programación orientada a objetos, sino que son funciones (de programación funcional o prodecimental, más tradicional que la POO) que podremos utilizar para solucionar temas concretos y cuyo uso es independiente.
Los helpers están almacenados en el directorio system/helpers o en el directorio system/application/helpers. Al intentar cargar un helper (que se tiene que realizar de manera explícita, como veremos más adelante) CodeIgniter mirará si se encuentra primero en system/application/helpers y si no es así lo buscará en la carpeta system/helpers.

Carga de un helper en CodeIgniter

En CodeIgniter no se carga de manera predeterminada ninguna librería o juego de funciones (salvo algunas librerías muy básicas), para aumentar el rendimiento del sistema, no haciendo procesar a PHP nada que realmente no necesite. Por ello tenemos que cargar los helpers, así como cualquier otra librería explícitamente, ya sea en todas las páginas a través de los archivos de configuración, o en una página en concreto a través de las funciones de carga de helpers.

Una vez un helper ha sido cargado, estará a nuestra disposición en los controladores y vistas, de manera global. Para cargar un helper podemos invocar este código.

$this->load->helper('mihelper');

En el código anterior la cadena "mihelper" corresponde con el nombre del helper que se desea cargar. Este nombre es una palabra como "url", "file", etc. y no el propio archivo del código del helper. Por ejemplo con el código:

$this->load->helper('url');

Se está cargando el helper con nombre "url" que realmente está en el archivo "url_helper.php". Pero para cargarlo simplemente tenemos que indicar el nombre del helper y no el nombre del archivo donde está el helper.

Puedes cargar un helper en cualquier parte del código de tus controladores o incluso de las vistas (aunque no sea una buena práctica cargar helpers en las vistas), siempre y cuando lo cargues antes de utilizarlo. En un controlador podrías cargar el helper en el constructor, con lo que estaría disponible en todas las funciones del mismo, o bien en una de las funciones donde lo necesites.

Puedes cargar múltiples helpers a través de una única llamada a load().

$this->load->helper( array('cookie', 'file', 'form') );

Carga automática de helpers

En CodeIgniter tenemos a disposición los archivos de configuración para definir cosas como la carga automática de helpers, que estarán disponibles de manera predeterminada en toda la aplicación sin que los tengamos que cargar cada vez que los pretendamos utilizar. La carga automática nos ahorrará repetir el código de carga de los helpers que deseemos en toda la aplicación y como podremos imaginar, es una buena idea cuando pensamos usar un helper en varios sitios distintos.

El archivo de configuración que tenemos que editar para definir los helpers que deseamos cargar de manera predeterminada es el siguiente:

system/application/config/autoload.php

Para indicar qué helpers queremos cargar tenemos que editar el array $autoload, en su índice "helpers", con un código parecido al siguiente:

$autoload['helper'] = array('url', 'file', 'cookie');

Extender helpers en CodeIgniter

Los helpers se pueden extender con nuevas funcionalidades personalizadas por nosotros mismos. Para ello tienes que crear un archivo con el helper modificado con tus propias funciones y colocarlo en el directorio system/application/helpers y nombrarlo como el helper original pero con el prefijo "MY_".

En ese archivo modificado del helper podrás añadir las funciones que te hagan falta o incluso modificar el código de las funciones ya existentes en los propios helpers.

La lista completa de helpers de CodeIgniter

Podemos saber los helpers que se encuentran a nuestra disposición en la guía del usuario de CodeIgniter, que está en la propia página del framework. Aunque esa guía de usuario está en Inglés, no resulta difícil de seguir y podrás encontrar cada helper y sus funciones relatadas con bastante detalle. En el futuro mostraremos algunos ejemplos de uso de al menos los helpers más fundamentales.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual