Creando una capa de abstracción con PHP y mysqli

Páginas: 8 (1868 palabras) Publicado: 26 de mayo de 2014
Creando una capa de
abstracción con PHP y
mysqli

7

PHP

Hackers & Developers Magazine – Año 0, Número 0

mysqli, es el conector para bases de datos MySQL
recomendado por PHP, para interactuar desde tu
aplicación con una base de datos MySQL. Pero crear
una capa de abstracción genérica, reutilizable y
orientada a objetos, suele ser un dolor de cabeza. En
este artículo, veremos comolograr crear una capa de
abstracción a bases de datos, simple y muy fácil de
usar.

Escrito por: Eugenia Bahit (Arquitecta GLAMP & Agile Coach)
Eugenia es Arquitecta de Software, docente instructora de
tecnologías GLAMP (GNU/Linux, Apache, MySQL, Python y PHP) y
Agile coach (UTN) especializada en Scrum y eXtreme Programming.
Miembro de la Free Software Foundation e integrante del equipode
Debian Hackers.
Webs:
Cursos de programación a Distancia: www.cursosdeprogramacionadistancia.com
Agile Coaching: www.eugeniabahit.com
Redes sociales:
Twitter / Identi.ca: @eugeniabahit

S

i alguna vez intentaste crear una capa de abstracción a bases de datos, utilizando el
conector mysqli en estilo orientado a objetos, sabrás que hacerlo es un gran dolor
de cabeza.

Pero ¿qué esexactamente mysqli y en qué se diferencia de mysql? Básicamente, como
bien se define en el manual oficial de PHP, mysqli es “una extensión mejorada del
conector mysql”. Entre las principales diferencias, se encuentran además, sus dos
grandes ventajas:


Permite trabajar en estilo orientado a objetos (también continúa proveyendo
soporte para estilo procedimental);

©2012 Hackers &Developers Magazine – Creative Commons Atribución NoComercial CompartirIgual 3.0. www.hdmagazine.org

Hackers & Developers Magazine – Año 0, Número 0



8

Nos facilita una forma segura de filtrado de datos en sentencias SQL, para
prevenir inyecciones SQL;

Sin dudas, mysqli es una gran ventaja frente al antiguo conector. Tiene una gran cantidad
de clases, métodos, constantes y propiedadesmuy bien documentados 1. Sin embargo,
entender la documentación puede ser una tediosa tarea, en la cual, hallar un principio y
un fin, se podrá convertir en la peor pesadilla de tu vida.
Así que entonces ¡Manos a la obra! Y a crear una capa de abstracción con mysqli
orientado a objetos.

Recetario para crear una capa de abstracción a bases de
datos con mysqli
Lo primero que debemos tener encuenta, es que nuestra capa de abstracción deberá
proveer de métodos públicos, que puedan ser llamados de forma estática, para crear un
objeto conector, no sea necesario.
Para poder lograr una capa de abstracción genérica, la clave es utilizar ReflectionClass2
para crear una instancia de mysqli_stmt y mediante ReflectionClass->getMethod,
invocar al método bind_param. De lo contrario,preparar una consulta SQL y enlazarle los
valores a ser filtrados, será imposible.

Ten en cuenta que para seguir los ejemplos de este artículo, es
necesario contar con la versión 5.3.6 o superior, de PHP.

Propiedades
Nuestra capa de abstracción, tendrá una única propiedad pública, destinada a almacenar
los datos obtenidos tras una consulta de selección. El resto de las propiedades, serán deámbito protegido, accesibles solo desde nuestra clase y clases que hereden de ésta.
class DBConnector {
protected
protected
protected
protected
protected

1
2

static
static
static
static
static

$conn;
$stmt;
$reflection;
$sql;
$data;

#
#
#
#
#

Objeto conector mysqli
preparación de la consulta SQL
Objeto Reflexivo de mysqli_stmt
Sentencia SQL a ser preparada
Arrayconteniendo los tipo de datos
más los datos a ser enlazados (será
recibido como parámetro)

http://php.net/manual/es/book.mysqli.php
http://php.net/manual/es/class.reflectionclass.php
©2012 Hackers & Developers Magazine – Creative Commons Atribución NoComercial CompartirIgual 3.0. www.hdmagazine.org

Hackers & Developers Magazine – Año 0, Número 0

public static $results;

9

#...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • capas de abstraccion
  • Crear Un Sistema De Login De Usuarios En PHP Con MySQL
  • Crear Formulario Con Php
  • crear un sitio web con php.
  • Abstraccionismo
  • abstraccion
  • Abstraccionismo
  • ABSTRACCION

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS