Qué son las librerías, cómo cargar y las fundamentales al momento de crear un sistema en CodeIgniter 3

30-10-2017 - Andrés Cruz

Qué son las librerías, cómo cargar y las fundamentales al momento de crear un sistema en CodeIgniter 3

En esta entrada hablaremos de algunas librerías fundamentales por mi persona al momento de crear proyectos sobre todo de carácter administrativos empleando CodeIgniter como framework de desarrollo PHP; estas funcionalidades son prácticamente imprescindible en cualquier aplicación web sin importar si es de pequeña o gran envergadura nuestro proyecto.

Pero antes de eso debemos saber que es una librería; una librería.

¿Qué son las librerías en CodeIgniter?

Las librerías son un medio fundamental para extender funcionalidades al framework; muchos componentes con los cuales no cuenta el framework puede ser extendido empleando librerías; aunque también tenemos los helper para CodeIgniter las librerías vienen siendo un poco más que esto, unos helper con más vitaminas con los cuales podemos implementar clases siguiendo la programación orientada a objetos (POO); esto ya es si decidimos nosotros crear nuestras propias librerías.

Por supuesto CodeIgniter cuenta con una cantidad importante de librerías que nosotros podemos emplear con tan solo instalar el framework: CodeIgniter Libraries para hacernos la vida más facil y no tener que crear nosotros elementos que son muy común y genéricos al momento de crear una aplicación.

Librerías del core de CodeIgniter

Cómo puedes consultar en el enlace anterior, tenemos librerías para los uso más comunes, trabajar con las imágenes en CodeIgniter, las Output Class para cambiar los encabezados HTTP según sea el tipo de dato devuelto, los Template Parse Class para definir el esqueleto de nuestra aplicación, o el layout base de la misma, una librería para enviar emails desde CodeIgniter e inclusive otras para trabajar con las el FTP, creación y validación de formularios y mucho más.

Estas son algunas de las librerías más importante y que personalmente siempre uso en mis proyectos; son fundamentales para cualquier app web con CodeIgniter, son muy fáciles de emplear, extensibles y personalizables por nosotros; aunque se echa de menos una librería para la autenticación.

Cargar librerías en CodeIgniter

Para emplear casi cualquier componente de CodeIgniter, tenemos que especificarlo que en otras palabras significa cargarlo; aquí inicializamos y cargamos la librería:

$this->load->library('someclass');

Por ejemplo, para realizar la carga de la librería de emails:

$this->load->library(email);

Aunque este es el punto fuerte de CodeIgniter y es que al trabajar solo con los componentes necesarios hace que su tiempo de respuesta sea bastante rápido en comparación con otros framework.

Cargar librerías en otros componentes que no sean controladores, modelos o vistas

Como ya debes saber si empleas CodeIgniter, el $this solo funciona dentro de los controladores, modelos y vistas, si queremos acceder al $this desde los helpers u otras librerías; por ejemplo para realizar las cargas anteriores, debemos de emplear el método:

$CI =& get_instance();

Por ejemplo, desde un helper, si queremos acceder a la librería de sesiones:

$CI =& get_instance();
$CI->load->library('session');

En vez de:

$this->load->library('session');

Con esto podemos llamar a todos los métodos que queramos que correspondan a esa librería.

Carga automática de librerías en CodeIgniter

Aunque este proceso de cargar librerías de forma manual en cada componente que vayamos a emplear puede convertirse en algo tediosos, por ejemplo, la base de datos, que la empleamos en toda la aplicación y si tenemos 50 controladores y si en los 50 tendremos que colocarla manualmente, pues esto se convierte en un dolor de cabeza; para esos casos, CodeIgniter emplea un archivo ubicado en:

system/application/config/autoload.php

Que permite definir mediante un array las librerías que vamos a emplear:

$autoload['libraries'] = array('database', 'form_validation','someclass');

En definitiva, podemos cargar cualquier librería desde este archivo de manera automatizada y global en nuestra aplicación CodeIgniter.

Mis librerías y paquetes fundamentales para trabajar con CodeIgniter

Cómo podrás darte cuenta al empezar a leer esta entrada, esta entrada busca ser una especie de recopilatorio de librerías de las que ya se ha dedicado una entrada para hablar de cada una de ellas de manera general para conocer su implementación y uso.

Las funcionalidades en cuestión consisten en extender funciones que CodeIgniter no implementa de manera nativa, funcionalidades como un módulo de login con la Lista de Control de Acceso o ACL por sus siglas en inglés, crear tablas administrativas (tablas en HTML que cuenten con campos de búsqueda, paginación, ordenación y extensibles para más funcionalidades) y sistemas CRUD de nuestros datos y por supuesto una REST API para conectar la aplicación realizada en CodeIgniter con otros tipos de aplicaciones móviles, etc.

Community Auth para el login y Lista de Control de Acceso en CodeIgniter

La primera librería que tocaremos es la que nos permite agregar funcionalidades para el login, sistema de seguridad para el bloqueo de cuentas según una cantidad de login fallidos, cambio de credenciales, cierre de sesión, entre muchas otras funcionalidades de las cuales ya hemos hablado en una posterior entrada:

Community Auth para el login y Lista de Control de Acceso en CodeIgniter

Permite la autenticación (login), manejo de roles, lista de control de acceso (ACL) para el manejo de los permisos, manejo de recuperación de contraseña, límite de logins fallidos entre otras características que podrás consultar en la documentación oficial o en la entrada anterior.

GroceryCRUD para la creación de nuestro CRUD en muy pocos pasos

La siguiente librería que veremos es la de GroceryCRUD de la cual ya hemos hablado en una anterior oportunidad en:

Creando nuestro CRUD con GroceryCRUD y CodeIgniter

En esencia, nos permite crear la gran mayoría de las secciones administrables simples y un poco más complejas en un sistema, para ello podemos definir a cuáles tablas en nuestra base de datos queremos que sean administrables/CRUD, podemos definir rápidamente funciones propias o existentes para validaciones, columnas personalizadas, exportar datos, vistas de impresión, vistas de creación y edición entre muchas otras funciones; y las que no podamos agregar desde la propia librería, la podemos extender nosotros agregando funciones o cualquier otro comportamiento que queramos que tenga nuestras tablas mediantes JavaScript o jQuery.

Crear una API REST

La última de las librería que hablaremos y que ya tratamos en una anterior oportunidad y su funcionamiento es bastante simple:

¿Cómo crear una API REST con CodeIgniter?

Permite crear una API REST para conectar otras aplicaciones como móviles, hoy en día en donde casi cualquier aplicación cuenta con una aplicación móvil que se alimenta y envía datos a un servidor el manejo de una API REST se hace imprescindible; como ya se habló en la entrada que se trató esta librería, permite devolver las respuestas en formatos JSON, XML y HTML.

Extra: Seleccionando nuestro template para el módulo administrador

Otro punto importante es seleccionar un template administrativo acorde para nuestro proyecto; para eso no hay que darle muchas vueltas al asunto y seleccionar alguno existente que se acoja a nuestras necesidades; en Google podrás encontrar una gran cantidad al colocar como término de búsqueda algo como "bootstrap layout admin layout admin" en caso de que selecciones bootstrap como librería HTML, CSS y JavaScript para nuestro proyecto, lo que ya es bastante común hoy en día:

Extra: Creando nuestra librería en CodeIgniter

Ya que hemos hablado de todo sobre las librerías en CodeIgniter, en esta guía definitiva de librerías en CodeIgniter; que son las librerías, como cargarlas o importarlas en nuestro proyecto, cuáles son las más empleadas al momento de crear nuestras aplicaciones, librerías y paquetes de tercero, como emplear librerías en helpers y otros componentes y como cargar librerias de manera global en nuestro proyecto CodeIgniter.

Codeigniter rescate

Ahora vamos a hablar sobre cómo crear una librería; como indicamos anteriormente, una librería está compuesto de una clase; siguiendo la documentación oficial en el siguiente enlace Creating Libraries; podemos crear una clase librería que debe estar ubicada en application/libraries de la siguiente forma:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Someclass {

        public function somemethod()
        {
        }
}

Aquí creamos los métodos que necesitemos, y luego desde nuestro controlador, modelo o lo que sea y hacer lo siguiente:

$this->load->library('someclass'); $this->someclass->some_method();

Si hay que pasar parámetros:

$params = array('text1' => 'Hola', 'text2' => 'Mundo');
$this->load->library('someclass', $params);

Con CodeIgniter y las librerías podemos hacer tres cosas distintas:

  • Podemos crear nuevas librerías.
  • Podemos extender librerías nativas o de nosotros con la palabra reservada extends que viene desde la herencia en PHP.
  • Podemos sobrescribir librerías indicando simplemente el nombre exacto de la librería a sobrescribir en nuestra nueva librería.

Conclusiones

Y esto viene siendo todo lo que tenemos que saber de las librerías en CodeIgniter 3, en esta entrada hablamos un poco de todo, sobre cómo trabajar con las librerías en CodeIgniter, hasta crear las de nosotros y cuales son las más empleadas, CodeIgniter es un gran framework muy extensible que nos permite tener nuestro código organizado ideal para todo tipo de proyectos.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.