sql >> Base de Datos >  >> RDS >> Database

Comparación de capas de abstracción de base de datos PHP y complementos CRUD

En este artículo, veremos diferentes capas de abstracción de bases de datos para PHP. También veremos un par de complementos de base de datos PHP CRUD que podrían facilitarle la vida al interactuar con una base de datos MySQL.

¿Qué es una capa de abstracción de base de datos?

Como sugiere el nombre, una capa de abstracción de base de datos es una capa que se encuentra entre su aplicación y la base de datos subyacente. Utilizará una capa de abstracción de base de datos para interactuar con su base de datos. El beneficio de la capa de abstracción de la base de datos es que puede cambiar el back-end de su base de datos subyacente sin preocuparse por los cambios de código en su aplicación. Una capa de abstracción de la base de datos también simplifica el código de la base de datos y facilita la conexión y la actualización de la base de datos.

Veamos un ejemplo para entender esto. Supongamos que ha elegido MySQL como back-end de base de datos en la fase inicial del desarrollo de su aplicación. No está utilizando ninguna capa de abstracción de base de datos en su aplicación, por lo que terminará escribiendo código específico para el back-end de MySQL cuando realice operaciones de base de datos.

¿Qué sucede si, por algún motivo, necesita cambiar el back-end de su base de datos de MySQL a Oracle? Este cambio no va a ser fácil. Lo primero que tendrá que hacer es revisar cada parte del código específico de MySQL en su aplicación. Deberá revisar cada línea de código que interactúa con el back-end de la base de datos MySQL y reemplazarlo con el código equivalente para la nueva base de datos.

Por otro lado, si ha utilizado una capa de abstracción de base de datos para interactuar con el back-end de la base de datos, el cambio a otro back-end de base de datos compatible con ODBC se realiza en un abrir y cerrar de ojos. Solo necesita cambiar la configuración de conexión para reflejar el nuevo back-end de la base de datos. Entonces, como puede ver, una capa de abstracción de la base de datos oculta la complejidad al permitirle hablar con diferentes back-ends de la base de datos.

Eche un vistazo al siguiente diagrama para entender lo que hemos discutido hasta ahora.

Como puede ver, la capa de abstracción de la base de datos se encuentra entre la aplicación y la base de datos real, por lo que la aplicación no necesita conocer los detalles de cómo funciona la base de datos subyacente.

Opciones de capa de abstracción de base de datos

A continuación, veremos un par de opciones que podría usar en el desarrollo diario de su aplicación. Echemos un vistazo rápido a las opciones que vamos a discutir en el resto del artículo.

  • DOP
  • Doctrina DBAL
  • ADOdb
  • PDOModel:Abstracción de base de datos y clase auxiliar de PHP
  • Sistema de gestión de datos xCRUD
  • PDO Crud:aplicación PHP CRUD avanzada

Las tres primeras opciones (PDO, Doctrine DBAL y ADOdb) son opciones populares de código abierto y de uso gratuito. Las otras tres son opciones comerciales disponibles de CodeCanyon, por lo que tendrá que pagarlas si desea usarlas. Por otro lado, estos proporcionan muchas funciones que le permiten configurar rápidamente andamios básicos en sus aplicaciones. Además, tienen un precio razonable en comparación con lo que ofrecen, como veremos más adelante en este artículo.

Un vistazo rápido a las opciones populares y gratuitas

En esta sección, veremos un par de opciones populares y gratuitas que podría usar como una capa de abstracción de base de datos en sus aplicaciones PHP.

DOP

La biblioteca PDO (objetos de datos de PHP) es una extensión de PHP que proporciona una interfaz para trabajar con diferentes back-ends de bases de datos. Para usar PDO, deberá instalar controladores de PDO específicos de la base de datos que desee usar en sus aplicaciones.

Entonces, si desea trabajar con la base de datos MySQL usando la extensión PDO, deberá asegurarse de haber habilitado la extensión php_pdo, que es una extensión PDO central, y la extensión pdo_mysql, que le permite hablar con el Servidor MySQL usando la capa de abstracción de la base de datos PDO.

Por supuesto, si desea trabajar con una base de datos que no sea MySQL, deberá instalar la extensión pdo para el back-end de esa base de datos. Para obtener más información sobre los controladores de bases de datos admitidos en PDO, puede visitar la página de controladores de PDO en el Manual en PDF, que incluye todo lo que necesita saber.

Doctrina DBAL

La biblioteca Doctrine DBAL (capa de abstracción de base de datos) es otra biblioteca de abstracción de base de datos popular que proporciona un contenedor alrededor de PDO. Doctrine DBAL proporciona métodos API fáciles de usar y algunas características adicionales en comparación con el uso de la extensión PDO pura por sí sola.

La lista de proveedores de bases de datos admitidos por Doctrine DBAL es:

  • MySQL
  • Oráculo
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL en cualquier lugar
  • SQLite
  • Llovizna

Doctrine DBAL se desarrolla bajo el proyecto Doctrine, que también proporciona un ORM (mapeador relacional de objetos) que se encuentra en la parte superior de Doctrine DBAL. El ORM de Doctrine es una herramienta que te permite escribir consultas de bases de datos de forma orientada a objetos. De hecho, el ORM en sí mismo es un tema amplio, por lo que no entraremos en detalles aquí, pero escribiré un artículo sobre ORM en el futuro.

ADOdb

Por último, ADOdb es una biblioteca de clases muy popular y un jugador muy antiguo en este territorio. Es una biblioteca externa que primero deberá descargar y configurar con su configuración si desea usarla. ADOdb también es compatible con una amplia gama de bases de datos para elegir como back-end de su base de datos.

Además de proporcionar componentes para consultar y actualizar la base de datos, también proporciona la biblioteca Active Record orientada a objetos, que funciona como un ORM de la misma manera que discutimos anteriormente en la sección ORM de Doctrine.

Además, deberá instalar los controladores correspondientes para los back-end de la base de datos de esta biblioteca, de la misma manera que lo haría para la extensión PDO. Por ejemplo, si desea trabajar con una base de datos MySQL, deberá instalar el controlador mysqli en PHP.

Ese fue un vistazo rápido a un par de útiles opciones gratuitas. En la siguiente sección, veremos algunas opciones comerciales populares que brindan muchas más funciones que solo la abstracción de la base de datos.

Los mejores scripts de abstracción de bases de datos PHP para comprar

En esta sección, analizaremos algunas opciones avanzadas que puede elegir para una biblioteca de abstracción de base de datos. De hecho, las opciones que hemos elegido no solo funcionarán como una biblioteca de abstracción de base de datos, sino que proporcionan mucho más que eso.

PDOModel:Abstracción de base de datos y clase auxiliar de PHP

La biblioteca PDOModel es una abstracción de base de datos y una clase auxiliar de PHP que se construye sobre la extensión PDO. Es un contenedor excelente que le permite realizar operaciones de inserción, actualización, eliminación y selección sin escribir ninguna consulta SQL. Por lo tanto, proporciona simplicidad y legibilidad. De hecho, proporciona funciones contenedoras que le permiten realizar operaciones complejas usando funciones simples sin escribir consultas SQL reales.

Por el momento, es compatible con back-ends de bases de datos MySQL, Postgres, SQlite y SQL Server. Admite transacciones y operaciones por lotes, lo cual es una característica esencial si desea importar una base de datos desde una fuente externa. La guinda del pastel es que le permite exportar datos a formatos como CSV, Excel, PDF, XML y más.

Echemos un vistazo rápido al siguiente código, que demuestra lo fácil que es usar el ayudante de PDOModel.

<?php
// initialize the PDOModel class
$pdoModelObj = new PDOModel(); 

// connect to a database
$pdoModelObj->connect("host", "username", "password", "database_name");

// querying database [select * FROM users]
$result = $pdoModelObj->select("users");

Entonces, como puede ver, es muy fácil realizar operaciones de base de datos usando la clase auxiliar de PDOModel. Para obtener más información, puede visitar la página oficial de PDOModel en CodeCanyon.

Las bibliotecas de las que hemos hablado hasta ahora han sido capas de abstracción de bases de datos, pero también veamos un par de complementos CRUD (crear, leer, actualizar y eliminar) que le permiten generar código de scaffolding fácilmente.

xCRUD:Sistema de Gestión de Datos

xCRUD es un complemento generador de CRUD simple pero poderoso escrito para PHP y MySQL. Le permite crear código de scaffolding básico en muy poco tiempo, e incluso es útil para quienes no son programadores. En esencia, utiliza la extensión mysqli para manejar diferentes operaciones de bases de datos. Pero no necesita preocuparse por las complejidades subyacentes, solo necesita usar las funciones fáciles de usar proporcionadas por el sistema xCRUD.

Mientras usa el complemento xCRUD, solo necesita diseñar las tablas de su base de datos, y el complemento xCRUD se encargará del resto. Con solo unas pocas líneas de código, tendrá una interfaz de usuario lista para usar que le permitirá crear y actualizar registros. También obtendrá una vista de lista que enumera todos los registros.

Echemos un vistazo rápido al código que debe escribir para generar métodos CRUD para la tabla de usuarios.

<?php
$xCRUD = Xcrud::get_instance();
$xCRUD->table('users');
echo $xCRUD->render();

¿No es genial? Con solo unas pocas líneas de código, ha generado el código de scaffolding para la tabla de usuarios. Y puede hacer mucho más con este complemento, ya que viene con muchas funciones. Puede visitar la página oficial del complemento en CodeCanyon para obtener más información.

PDO CRUD:Aplicación PHP CRUD avanzada

Por último, echemos un vistazo al complemento PDO CRUD, que también es un complemento generador de CRUD que admite back-end de bases de datos MySQL, Postgres y SQLite. Con solo unas pocas líneas de código, este complemento puede generar una interfaz de usuario hermosa y atractiva, que le permite realizar operaciones diarias con su base de datos sin esfuerzo.

Como sugiere el nombre, no es solo un generador CRUD básico, sino una plantilla completa para una aplicación de base de datos. Echemos un vistazo rápido a algunas de las potentes funciones de este complemento:

  • ediciones en línea
  • carga de archivos
  • soporte para complementos de JavaScript
  • unir operaciones
  • búsqueda, paginación y exportación
  • soporte en varios idiomas
  • y muchos más

Y aquí hay un vistazo rápido al código que usaría para generar una interfaz CRUD básica:

<?php
$pdoCrudObject = new PDOcrud();
echo $pdoCrudObject->dbTable('users')->render();

¡Eso es todo! Visite la página oficial de este complemento CRUD en CodeCanyon para obtener una idea de cuán poderoso es este complemento.