Spoon Database clase para abstracción de base de datos en PHP 5

  • Por
  • PHP
Las librerías Spoon PHP5 Library disponen de una clase llamada Database para la abstracción de base de datos en PHP 5.
Spoon es una librería que facilita la programación en PHP 5. No es un framework, sino un conjunto de clases que podemos incluir en nuestros scripts para realizar funcionalidades comunes en lo que serían las aplicaciones de la web 2.0. En el Manual de Spoon venimos tratando varias de las clases que se pueden utilizar en estas interesantes librerías y en este artículo vamos a comenzar a explicar la clase Database.

En Spoon existe una clase que implementa todo el trabajo que podríamos realizar con las bases de datos, por medio de una serie de métodos para realizar distintos tipos de consultas. La verdad es que, si estamos acostumbrados a trabajar con las funciones de MySQL de PHP, esta librería podría resultarnos en un principio prescindible, pero lo cierto es que existen algunas funcionalidades bastante interesantes que pueden facilitarnos algunas tareas típicas.

Nota: Para explicar el trabajo con las bases de datos en Spoon estoy utilizando como referencia el tutorial sobre bases de datos publicado en el sitio web de Spoon. Por lo que este texto es una traducción libre y ampliada sobre lo que podréis encontrar allí.

Abstracción de Base de datos en PHP 5

Aparte de algunos métodos interesantes que comentaremos a lo largo de los próximos artículos, lo más importante es que nos aportará la clase SpoonDatabase es la abstracción de base de datos. Esto quiere decir que podemos programar una aplicación sin utilizar las funciones específicas de una base de datos concreta, lo que facilitaría la migración a otro sistema gestor de base de datos.

Por ejemplo, podemos trabajar con nuestra aplicación en MySQL y al cabo de un tiempo decidir que deseamos utilizar SQLite o PostgreSQL. En el caso que tengamos una capa de abstracción de base de datos como la que nos proporciona Spoon, esa hipotética migración resultará mucho menos dolorosa, ya que simplemente tendríamos que cambiar el driver con el que iniciamos la clase SpoonDatabase y todo el resto del código permanecería igual.

Nota: En este caso, las bases de datos que tendremos disponibles dependen de los drivers instalados en el servidor web donde estemos ejecutando nuestras páginas. Una configuración típica de Xamp sobre Windows dispone los drivers mysql, odbc, sqlite, sqlite2.

Incluir la librería SpoonDatabase

El primer paso para poder utilizar las librerías Spoon para el acceso a base de datos es incluir los scripts necesarios de las librerías. Esto ya se comentó en el artículo de Primeros pasos con Spoon. En concreto tendremos que cargar la librería spoon/database/database.php. Lo hacemos con el siguiente código, pero tener en cuenta que debemos haber colocado mediante la función set_include_path() el camino hacia Spoon, tal como se explicó en el mencionado artículo.

require_once 'spoon/database/database.php';

Conexión con una base de datos

Para la conexión con la base de datos tenemos que instanciar un objeto de la clase SpoonDatabase, enviando todos los datos de conexión al constructor.

$db = new SpoonDatabase('driver', 'servidor', 'usuario', 'clave', 'base de datos');

Para explicar estas liberías hemos utilizado una base de datos MySQL instalada en un Xampp, que tiene como servidor a "localhost" y el usuario "root" y sin clave, tal como es la instalación típica de este paquete. Además vamos a conectar con una base de datos que hemos llamado "probando".

$db = new SpoonDatabase('mysql', 'localhost', 'root', '', 'probando');

Como se puede apreciar, el driver que estamos utilizando en este caso es el de MySQL, que se envía en el primer parámetro. Si lo deseas, coloca cualquier cosa en vez de ese driver y Spoon te mostrará una excepción en la que podrás ver los drivers instalados en el servidor donde estás trabajando.

Una vez que hemos conectado con nuestra base de datos estamos en condición de realizar diversas acciones o consultas. Para ello utilizamos el objeto de la clase SpoonDatabase que recibimos al invocar al constructor. En la documentación se pueden ver los diferentes métodos que podemos realizar sobre el objeto, para hacer todo tipo de consultas y operaciones con la base de datos.

En el próximo artículo veremos cómo utilizar el método getVar(), que nos dará pie a realizar varias consultas y explicar cómo se puede parametrizar de una manera bastante potente esas consultas.