Las librerías en Codeigniter tienen esa misma función, ya que el core de dicho framework ya viene previsto de librerías muy útiles como por ejemplo la conexión a la base de datos, el envío de emails, encriptación de cadenas, entre otras.
Aunque estas librerías ya esten hechas, el framework nos permite crear librerías nuevas o incluso extender esa librerías en el caso de que quisiéramos añadir alguna funcionalidad extra.
Todas las clases que desarrollemos tienen que estar situadas dentro de la carpeta: application/libraries
Por convención si nuestra clase tiene que tener el nombre de email, el fichero se debería de llamar: MY_library.php.
(Mas adelante os explicaré el motivo).
La estructura de dichas clases es la siguiente:
En el caso de que sea una librería propia, que no extienda de ninguna librería del core sería de la siguiente forma:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class MY_Library { public function __construct($params) { // Do something with $params } } ?>
En el caso de que nuestra librería amplie la funcionalidades de una librería del core del Codeigniter, la declaración de la clase es parecida a la declaración anterior con una sola diferencia, se ha de añadir el concepto extends.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class MY_Email extends CI_Email { public function __construct() { parent::__construct(); } }
Una vez declaradas las librerías, lo que se debe hacer es cargarlas en el framework.
Se puede hacer de dos formas diferentes:
- Añadiendo la librería en el archivo de configuración autoload.php
- Cargando la librería en el propio controlador donde se vaya a utilizar
$this->load->library('MY_Library'); //desde el controlador
$autoload['libraries'] = array('MY_Library'); //desde el fichero de configuración autoload.php
En cambio si la librería extiende de una clase de Codeigniter como por ejemplo la librería email, que ya existe en el core, simplemente se ha de cargar llamando a la librería por su nombre original.
$this->load->library('email'); //desde el controlador
$autoload['libraries'] = array('email'); //desde el fichero de configuración autoload.php
Porque el prefijo MY_
El prefijo MY_ es un prefijo que viene dado en la configuración de Codeigniter en el archivo de configuración config.php.
$config['subclass_prefix'] = 'MY_';
Este prefijo es modificable a pesar de que yo aconsejo dejarlo por el que viene por defecto, y lo utiliza Codeigniter para saber si es una clase propia que extiende de una clase core.
Aunque la primera librería que hemos creado MY_Library no extiende de ninguna, aconsejo que todas las librerías que desarrolléis tengan la misma forma, para no causar confuciones.
No hay comentarios:
Publicar un comentario