Database
 sql >> Datenbank >  >> RDS >> Database

Vergleich von PHP-Datenbank-Abstraktionsschichten und CRUD-Plugins

In diesem Artikel werden wir uns verschiedene Datenbankabstraktionsschichten für PHP ansehen. Wir werden uns auch ein paar PHP-CRUD-Datenbank-Plugins ansehen, die Ihnen das Leben bei der Interaktion mit einer MySQL-Datenbank erleichtern könnten.

Was ist eine Datenbankabstraktionsschicht?

Wie der Name schon sagt, ist eine Datenbankabstraktionsschicht eine Schicht, die sich zwischen Ihrer Anwendung und der zugrunde liegenden Datenbank befindet. Sie verwenden eine Datenbankabstraktionsschicht, um mit Ihrer Datenbank zu interagieren. Der Vorteil der Datenbankabstraktionsschicht besteht darin, dass Sie Ihr zugrunde liegendes Datenbank-Back-End wechseln können, ohne sich Gedanken über Codeänderungen in Ihrer Anwendung machen zu müssen. Eine Datenbank-Abstraktionsschicht vereinfacht auch den Datenbankcode und erleichtert die Verbindung mit und die Aktualisierung der Datenbank.

Schauen wir uns ein Beispiel an, um dies zu verstehen. Angenommen, Sie haben sich in der Anfangsphase Ihrer Anwendungsentwicklung für MySQL als Datenbank-Backend entschieden. Sie verwenden keine Datenbank-Abstraktionsschicht in Ihrer Anwendung, sodass Sie am Ende Code schreiben müssen, der für das MySQL-Back-End spezifisch ist, wenn Sie Datenbankoperationen durchführen.

Was ist, wenn Sie aus irgendeinem Grund Ihr Datenbank-Backend von MySQL auf Oracle umstellen müssen? Dieser Wechsel wird nicht einfach. Als Erstes müssen Sie jedes Bit des MySQL-spezifischen Codes in Ihrer Anwendung überprüfen. Sie müssen jede Codezeile durchgehen, die mit dem MySQL-Datenbank-Backend interagiert, und sie durch den entsprechenden Code für die neue Datenbank ersetzen.

Wenn Sie andererseits eine Datenbankabstraktionsschicht verwendet haben, um mit dem Datenbank-Backend zu interagieren, ist der Wechsel zu einem anderen ODBC-kompatiblen Datenbank-Backend im Handumdrehen erledigt. Sie müssen nur die Verbindungseinstellungen ändern, um das neue Datenbank-Back-End widerzuspiegeln. Wie Sie also sehen können, verbirgt eine Datenbank-Abstraktionsschicht die Komplexität, indem Sie mit verschiedenen Datenbank-Back-Ends kommunizieren können.

Werfen Sie einen Blick auf das folgende Diagramm, um zu verstehen, was wir bisher besprochen haben.

Wie Sie sehen, befindet sich die Datenbank-Abstraktionsschicht zwischen der Anwendung und der eigentlichen Datenbank, sodass die Anwendung nicht wissen muss, wie die zugrunde liegende Datenbank funktioniert.

Optionen der Datenbankabstraktionsschicht

Als Nächstes sehen wir uns einige Optionen an, die Sie in Ihrer täglichen Anwendungsentwicklung verwenden können. Werfen wir einen kurzen Blick auf die Optionen, die wir im Rest des Artikels besprechen werden.

  • gU
  • Doktrin DBAL
  • ADODb
  • PDOModel:Datenbankabstraktion und Helfer-PHP-Klasse
  • xCRUD-Datenverwaltungssystem
  • PDO Crud:Fortgeschrittene PHP-CRUD-Anwendung

Die ersten drei Optionen – PDO, Doctrine DBAL und ADOdb – sind beliebte Open-Source-Optionen und können kostenlos verwendet werden. Die anderen drei sind kommerzielle Optionen, die von CodeCanyon erhältlich sind. Sie müssen also dafür bezahlen, wenn Sie sie verwenden möchten. Andererseits bieten diese viele Funktionen, mit denen Sie schnell grundlegende Gerüste in Ihren Anwendungen einrichten können. Außerdem sind sie im Vergleich zu dem, was sie bieten, preisgünstig, wie wir später in diesem Artikel sehen werden.

Ein kurzer Blick auf beliebte und kostenlose Optionen

In diesem Abschnitt sehen wir uns einige beliebte und kostenlose Optionen an, die Sie als Datenbank-Abstraktionsschicht in Ihren PHP-Anwendungen verwenden können.

gU

Die PDO-Bibliothek (PHP-Datenobjekte) ist eine PHP-Erweiterung, die eine Schnittstelle für die Arbeit mit verschiedenen Datenbank-Backends bereitstellt. Um PDO verwenden zu können, müssen Sie datenbankspezifische PDO-Treiber installieren, die Sie in Ihren Anwendungen verwenden möchten.

Wenn Sie also mit der MySQL-Datenbank unter Verwendung der PDO-Erweiterung arbeiten möchten, müssen Sie sicherstellen, dass Sie die php_pdo-Erweiterung, die eine Kern-PDO-Erweiterung ist, und die pdo_mysql-Erweiterung, die es Ihnen ermöglicht, mit der zu sprechen, aktiviert haben MySQL-Server, der die PDO-Datenbank-Abstraktionsschicht verwendet.

Wenn Sie mit einer anderen Datenbank als MySQL arbeiten möchten, müssen Sie natürlich die pdo-Erweiterung für dieses Datenbank-Backend installieren. Weitere Informationen zu den unterstützten Datenbanktreibern in PDO finden Sie auf der PDO-Treiberseite im PDF-Handbuch, das alles enthält, was Sie wissen müssen.

Doktrin DBAL

Die Doctrine-DBAL-Bibliothek (Database Abstraction Layer) ist eine weitere beliebte Datenbank-Abstraktionsbibliothek, die einen Wrapper um PDO bereitstellt. Die Doctrine DBAL bietet einfach zu verwendende API-Methoden und einige zusätzliche Funktionen im Vergleich zur Verwendung der reinen PDO-Erweiterung allein.

Die Liste der von Doctrine DBAL unterstützten Datenbankanbieter lautet:

  • MySQL
  • Orakel
  • Microsoft SQL-Server
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • Niesel

Doctrine DBAL wird im Rahmen des Doctrine-Projekts entwickelt, das auch einen ORM (Object-Relational Mapper) bereitstellt, der auf der Doctrine DBAL sitzt. Das Doctrine ORM ist ein Werkzeug, mit dem Sie Datenbankabfragen objektorientiert schreiben können. Tatsächlich ist das ORM selbst ein weites Thema, daher werden wir hier nicht auf die Details eingehen, aber ich werde in Zukunft einen Artikel über ORM schreiben.

ADODb

Schließlich ist ADOdb eine sehr beliebte Klassenbibliothek und ein sehr alter Spieler in diesem Gebiet. Es ist eine externe Bibliothek, die Sie zuerst herunterladen und mit Ihrem Setup konfigurieren müssen, wenn Sie sie verwenden möchten. ADOdb unterstützt auch eine breite Palette von Datenbanken, aus denen Sie als Ihr Datenbank-Back-End wählen können.

Zusätzlich zu den Komponenten zum Abfragen und Aktualisieren der Datenbank bietet es auch die objektorientierte Active Record-Bibliothek, die als ORM funktioniert, auf die gleiche Weise, die wir zuvor im Abschnitt Doctrine-ORM besprochen haben.

Außerdem müssen Sie für diese Bibliothek entsprechende Treiber für Datenbank-Back-Ends installieren, genau wie für die PDO-Erweiterung. Wenn Sie beispielsweise mit einer MySQL-Datenbank arbeiten möchten, müssen Sie den mysqli-Treiber in PHP installieren.

Das war also ein kurzer Blick auf ein paar nützliche kostenlose Optionen. Im nächsten Abschnitt sehen wir uns einige beliebte kommerzielle Optionen an, die viel mehr Funktionen bieten als nur die Datenbankabstraktion.

Die besten PHP-Datenbank-Abstraktionsskripte zum Kauf

In diesem Abschnitt besprechen wir einige erweiterte Optionen, die Sie für eine Datenbankabstraktionsbibliothek auswählen können. Tatsächlich funktionieren die von uns ausgewählten Optionen nicht nur als Datenbankabstraktionsbibliothek – sie bieten viel mehr als das.

PDOModel:Datenbankabstraktion und Helfer-PHP-Klasse

Die PDOModel-Bibliothek ist eine Datenbankabstraktions- und Helfer-PHP-Klasse, die auf der PDO-Erweiterung aufbaut. Es ist ein ausgezeichneter Wrapper, mit dem Sie Einfüge-, Aktualisierungs-, Lösch- und Auswahlvorgänge ausführen können, ohne SQL-Abfragen schreiben zu müssen. Es bietet somit Einfachheit und Lesbarkeit. Tatsächlich bietet es Wrapper-Funktionen, mit denen Sie komplexe Operationen mit einfachen Funktionen ausführen können, ohne tatsächliche SQL-Abfragen zu schreiben.

Im Moment unterstützt es MySQL-, Postgres-, SQlite- und SQL Server-Datenbank-Backends. Es unterstützt Transaktionen und Stapeloperationen, was ein wesentliches Merkmal ist, wenn Sie eine Datenbank aus einer externen Quelle importieren möchten. Das Sahnehäubchen ist, dass Sie Daten in Formate wie CSV, Excel, PDF, XML und mehr exportieren können.

Werfen wir einen kurzen Blick auf den folgenden Code, der zeigt, wie einfach es ist, das PDOModel-Hilfsprogramm zu verwenden.

<?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");

Wie Sie sehen können, ist es ein Kinderspiel, Datenbankoperationen mit der PDOModel-Hilfsklasse durchzuführen. Weitere Informationen finden Sie auf der offiziellen PDOModel-Seite von CodeCanyon.

Die Bibliotheken, über die wir bisher gesprochen haben, waren Datenbank-Abstraktionsschichten, aber schauen wir uns auch ein paar CRUD-Plugins (Create, Read, Update, and Delete) an, mit denen Sie auf einfache Weise Gerüstcode generieren können.

xCRUD:Datenverwaltungssystem

xCRUD ist ein einfaches, aber leistungsstarkes CRUD-Generator-Plugin, das für PHP und MySQL geschrieben wurde. Sie können damit im Handumdrehen einfachen Gerüstcode erstellen, und es ist sogar für Nicht-Programmierer nützlich. Im Kern verwendet es die mysqli-Erweiterung, um mit verschiedenen Datenbankoperationen umzugehen. Aber Sie müssen sich keine Gedanken über die zugrunde liegende Komplexität machen – Sie müssen nur die benutzerfreundlichen Funktionen des xCRUD-Systems verwenden.

Während Sie das xCRUD-Plugin verwenden, müssen Sie nur Ihre Datenbanktabellen entwerfen, und das xCRUD-Plugin erledigt den Rest. Mit nur wenigen Codezeilen haben Sie eine gebrauchsfertige Benutzeroberfläche, mit der Sie Datensätze erstellen und aktualisieren können. Sie erhalten auch eine Listenansicht, die alle Datensätze auflistet.

Werfen wir einen kurzen Blick auf den Code, den Sie schreiben müssen, um CRUD-Methoden für die Benutzertabelle zu generieren.

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

Ist das nicht ordentlich? Mit nur wenigen Codezeilen haben Sie den Gerüstcode für die Benutzertabelle generiert. Und Sie können mit diesem Plugin noch viel mehr machen, da es viele Funktionen bietet. Weitere Informationen finden Sie auf der offiziellen Plugin-Seite von CodeCanyon.

PDO CRUD:Fortgeschrittene PHP-CRUD-Anwendung

Schauen wir uns zum Schluss das PDO CRUD-Plugin an, das auch ein CRUD-Generator-Plugin ist, das MySQL-, Postgres- und SQLite-Datenbank-Backends unterstützt. Mit nur wenigen Codezeilen ist dieses Plugin in der Lage, eine schöne und ansprechende Benutzeroberfläche zu generieren, mit der Sie mühelos alltägliche Operationen mit Ihrer Datenbank durchführen können.

Wie der Name schon sagt, handelt es sich nicht nur um einen einfachen CRUD-Generator, sondern um eine vollständige Vorlage für eine Datenbankanwendung. Werfen wir einen kurzen Blick auf einige der leistungsstarken Funktionen dieses Plugins:

  • Inline-Bearbeitungen
  • Datei-Uploads
  • Unterstützung für JavaScript-Plugins
  • An Operationen teilnehmen
  • Suchen, Paginieren und Exportieren
  • mehrsprachige Unterstützung
  • und viele mehr

Und hier ist ein kurzer Blick auf den Code, den Sie verwenden würden, um eine grundlegende CRUD-Schnittstelle zu generieren:

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

Das ist es! Besuchen Sie die offizielle Seite dieses CRUD-Plugins auf CodeCanyon, um einen Einblick in die Leistungsfähigkeit dieses Plugins zu erhalten.