Cómo crear tus propias librerías e integrarlas al núcleo de CodeIgniter para poder utilizarlas en tus aplicaciones web PHP.
Podemos decir que las librerías que vienen ya creadas en CodeIgniter contemplan muchos de los casos habituales que podemos necesitar resolver en páginas web, como accesos a base de datos, trabajo con calendarios, con URLs, cookies, etc. Pero esto no quiere decir que para todo problema existe una librería, porque las situaciones y casos de uso pueden ser tan variados como los gustos. Para extender las funcionalidades del framework, CodeIgniter pone a nuestra disposición un procedimiento sencillo que nos permitirá crear nuestras propias librerías, que resuelvan o den soporte a nuestras necesidades específicas. Así mismo, puede darse el caso que un programador necesite expandir una librería ya creada en CodeIgniter, para agregar o sustituir funcionalidades, o que quiera reemplazar por completo una librería ya creada en el framework con un código totalmente propio. Afortunadamente, todo se puede conseguir con CodeIgniter.
Para que quede claro, con CodeIgniter podemos crear hasta tres tipos de "librerías propias":
- Librerías creadas enteramente por el desarrollador.
- Librerías para extender otras librerías nativas de CodeIgniter
- Librerías para reemplazar totalmente otra nativa de CodeIgniter
Almacenamiento de nuestras propias librerías
Cuando creamos una librería que queremos utilizar desde CodeIgniter la tenemos que colocar en un directorio determinado: system/application/libraries.CodeIgniter buscará siempre las librerías en ese directorio cuando son solicitadas. Nosotros tenemos que asegurarnos siempre de cumplir las siguientes convenciones en los nombres:
- Los nombres de los archivos de las librerías deben tener la primera letra en mayúsculas. Por ejemplo, Validador.php.
- Los nombres de las clases deben tener también la primera letra en mayúsculas. En el código de las librerías colocaremos una clase, de Programación Orientada a Objetos (POO), cuyo nombre tendrá la primera letra en mayúsculas. Por ejemplo class Validador.
- El nombre del archivo tiene que ser igual al nombre de la clase (de POO) que colocaremos dentro.
Código de una clase para crear una librería personalizada en CodeIgniter
Veamos a continuación el código básico para crear una librería en CodeIgniter. Se trata simplemente de la declaración de una clase (POO) donde colocaremos las funciones de la librería.
<?php if ( ! defined('BASEPATH')) exit('No se permite el acceso directo al script');
class Miclase {
//funciones que queremos implementar en Miclase.
function una_function(){
}
}
?>
Invocar y usar la librería
Para utilizar las librerías que creemos, primero tenemos que cargarlas desde los controladores y para ello actuaremos del mismo modo que para cargar las librerías nativas de CodeIgniter.$this->load->library('miclase');
En este caso, es indiferente si colocamos en mayúscula la primera letra de la librería o no.si la
A partir del momento que la librería está cargada, podremos acceder a ella, para ejecutar sus métodos, siempre con el nombre en minúscula.
$this->miclase->una_function();
Paso de parámetros a una librería
Si lo deseamos, podemos enviar parámetros adicionales en el momento de cargar la librería, que podrían servirnos para realizar cualquier tipo de configuración en la clase. Estos parámetros se indicarían en la llamada para cargar la librería de esta manera:
$params = array('p1' => 'valor 1', 'p2' => 'valor 2');
$this->load->library('Miclase', $params);
En el constructor de la clase tendríamos que recibir los parámetros de la siguiente manera:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Otraclase {
function Otraclase($params){
//Constructor, donde se supone que haremos algo con $params
}
}
?>
Aun nos quedan cosas que aprender sobre la creación de librerías propias, pero vamos a detenernos por aquí y en el siguiente artículo veremos un ejemplo de construcción y uso de librerías creadas por nosotros en CodeIgniter.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...