sql >> Databasteknik >  >> RDS >> Database

Jämför PHP-databasabstraktionslager och CRUD-plugins

I den här artikeln ska vi titta på olika databasabstraktionslager för PHP. Vi kommer också att titta på ett par PHP CRUD-databasplugin som kan göra ditt liv enklare när du interagerar med en MySQL-databas.

Vad är ett databasabstraktionslager?

Som namnet antyder är ett databasabstraktionslager ett lager som sitter mellan din applikation och den underliggande databasen. Du kommer att använda ett databasabstraktionslager för att interagera med din databas. Fördelen med databasabstraktionslagret är att du kan byta din underliggande databasbackend utan att behöva oroa dig för kodändringar i din applikation. Ett databasabstraktionslager förenklar också databaskoden och gör det lättare att ansluta till och uppdatera databasen.

Låt oss titta på ett exempel för att förstå detta. Låt oss säga att du har valt MySQL som en databasbackend i den inledande fasen av din applikationsutveckling. Du använder inte något databasabstraktionslager i din applikation, så du kommer att skriva kod som är specifik för MySQL-back-end när du utför databasoperationer.

Vad händer om du av någon anledning behöver ändra din databasbackend från MySQL till Oracle? Denna växling kommer inte att bli lätt. Det första du måste göra är att granska varje bit av den MySQL-specifika koden i din applikation. Du måste gå igenom varje rad kod som interagerar med MySQL-databasens back-end och ersätta den med motsvarande kod för den nya databasen.

Å andra sidan, om du har använt ett databasabstraktionslager för att interagera med databasens back-end, görs bytet till någon annan ODBC-kompatibel databasbackend på ett ögonblick. Du behöver bara ändra anslutningsinställningarna för att återspegla den nya databasens back-end. Så, som du kan se, döljer ett databasabstraktionslager komplexitet genom att låta dig prata med olika databasback-ends.

Ta en titt på följande diagram för att förstå vad vi har diskuterat hittills.

Som du kan se, sitter databasabstraktionslagret mellan applikationen och den faktiska databasen, så applikationen behöver inte veta detaljerna om hur den underliggande databasen fungerar.

Alternativ för databasabstraktionslager

Därefter ska vi titta på ett par alternativ som du kan använda i din dagliga applikationsutveckling. Låt oss ta en snabb titt på alternativen som vi kommer att diskutera i resten av artikeln.

  • PDO
  • Doktrin DBAL
  • ADOdb
  • PDOModel:Databasabstraktion och Helper PHP Class
  • xCRUD Data Management System
  • PDO Crud:Avancerad PHP CRUD-applikation

De tre första alternativen – PDO, Doctrine DBAL och ADOdb – är populära alternativ med öppen källkod och gratis att använda. De andra tre är kommersiella alternativ tillgängliga från CodeCanyon, så du måste betala för dem om du vill använda dem. Å andra sidan ger dessa en mängd funktioner som gör att du snabbt kan sätta upp grundläggande ställningar i dina applikationer. Dessutom är de rimligt prissatta jämfört med vad de tillhandahåller, som vi kommer att se senare i den här artikeln.

En snabb titt på populära och kostnadsfria alternativ

I det här avsnittet ska vi titta på ett par populära och gratis alternativ som du kan använda som ett databasabstraktionslager i dina PHP-applikationer.

PDO

PDO-biblioteket (PHP-dataobjekt) är ett PHP-tillägg som tillhandahåller ett gränssnitt för att arbeta med olika databasback-ends. För att kunna använda PDO måste du installera databasspecifika PDO-drivrutiner som du vill använda i dina applikationer.

Så om du vill arbeta med MySQL-databasen med PDO-tillägget, måste du se till att du har aktiverat php_pdo-tillägget, som är en kärn-PDO-tillägg, och pdo_mysql-tillägget, som låter dig prata med MySQL-server som använder PDO-databasabstraktionslagret.

Naturligtvis, om du vill arbeta med en annan databas än MySQL, måste du installera PDO-tillägget för den databasens back-end. För mer information om de databasdrivrutiner som stöds i PDO kan du besöka sidan PDO-drivrutiner i PDF-manualen, som innehåller allt du behöver veta.

Doktrin DBAL

Doctrine DBAL (database abstraction layer)-biblioteket är ett annat populärt databasabstraktionsbibliotek som tillhandahåller ett omslag runt PDO. Doctrine DBAL tillhandahåller lättanvända API-metoder och några ytterligare funktioner jämfört med att använda det rena PDO-tillägget på egen hand.

Listan över databasleverantörer som stöds av Doctrine DBAL är:

  • MySQL
  • Oracle
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • Duggregn

Doctrine DBAL är utvecklad under Doctrine-projektet, som också tillhandahåller en ORM (objektrelationell kartläggare) som sitter på toppen av Doctrin DBAL. Doctrine ORM är ett verktyg som låter dig skriva databasfrågor på ett objektorienterat sätt. Faktum är att ORM i sig är ett brett ämne, så vi går inte in på detaljerna här, men jag kommer att skriva en artikel om ORM i framtiden.

ADOdb

Slutligen är ADOdb ett mycket populärt klassbibliotek och en mycket gammal spelare i detta territorium. Det är ett externt bibliotek som du först måste ladda ner och konfigurera med din installation om du vill använda det. ADOdb stöder också ett brett utbud av databaser att välja mellan som backend för din databas.

Förutom att tillhandahålla komponenter för att fråga och uppdatera databasen, tillhandahåller den också det objektorienterade Active Record-biblioteket, som fungerar som en ORM på samma sätt som vi diskuterade tidigare i Doctrin ORM-avsnittet.

Du måste också installera motsvarande drivrutiner för databasens back-ends för det här biblioteket, på samma sätt som du skulle göra för PDO-tillägget. Om du till exempel vill arbeta med en MySQL-databas måste du installera mysqli-drivrutinen i PHP.

Så det var en snabb titt på ett par användbara gratisalternativ. I nästa avsnitt ska vi titta på några populära kommersiella alternativ som ger mycket fler funktioner än bara databasabstraktion.

Bästa PHP-databasabstraktionsskript att köpa

I det här avsnittet kommer vi att diskutera några avancerade alternativ som du kan välja för ett databasabstraktionsbibliotek. Faktum är att alternativen som vi har valt inte bara fungerar som ett databasabstraktionsbibliotek – de ger enmycket mer än så.

PDOModel:Databasabstraktion och Helper PHP Class

PDOModel-biblioteket är en databasabstraktion och PHP-hjälparklass som är byggd ovanpå PDO-tillägget. Det är ett utmärkt omslag som låter dig utföra infoga, uppdatera, ta bort och välja operationer utan att skriva några SQL-frågor. Det ger alltså enkelhet och läsbarhet. Faktum är att den tillhandahåller omslagsfunktioner som gör att du kan utföra komplexa operationer med enkla funktioner utan att skriva faktiska SQL-frågor.

För närvarande stöder den MySQL, Postgres, SQLite och SQL Server-databasbackends. Den stöder transaktioner och batchoperationer, vilket är en viktig funktion om du vill importera en databas från en extern källa. Körsbäret på toppen är att det låter dig exportera data till format som CSV, Excel, PDF, XML och mer.

Låt oss ta en snabb titt på följande kod, som visar hur lätt det är att använda PDOModel-hjälparen.

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

Så som du kan se är det enkelt att utföra databasoperationer med hjälp av PDOModel-hjälparklassen. För mer information kan du besöka den officiella PDOModel-sidan på CodeCanyon.

De bibliotek vi har pratat om hittills har varit databasabstraktionslager, men låt oss också titta på ett par CRUD-plugins (skapa, läs, uppdatera och ta bort) som gör att du enkelt kan generera ställningskod.

xCRUD:Data Management System

xCRUD är en enkel men kraftfull CRUD-generator plugin skriven för PHP och MySQL. Det låter dig skapa grundläggande ställningskod på nolltid, och det är till och med användbart för icke-programmerare också. I grunden använder den mysqli-tillägget för att hantera olika databasoperationer. Men du behöver inte oroa dig för den underliggande komplexiteten – du behöver bara använda de lättanvända funktionerna som tillhandahålls av xCRUD-systemet.

När du använder plugin-programmet xCRUD behöver du bara designa dina databastabeller, och xCRUD-pluginen kommer att hantera resten. Med bara några rader kod har du ett användargränssnitt som är färdigt att använda som låter dig skapa och uppdatera poster. Du får också en listvy som listar alla poster.

Låt oss ta en snabb titt på koden du måste skriva för att generera CRUD-metoder för användartabellen.

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

Är inte det snyggt? Med bara några rader kod har du skapat ställningskoden för användartabellen. Och du kan göra mycket mer med detta plugin eftersom det kommer med många funktioner. Du kan besöka den officiella pluginsidan på CodeCanyon för mer information.

PDO CRUD:Advanced PHP CRUD Application

Slutligen, låt oss titta på PDO CRUD-plugin, som också är en CRUD-generator-plugin som stöder MySQL, Postgres och SQLite-databasbackends. Med bara några rader kod kan detta plugin skapa ett vackert och tilltalande användargränssnitt som låter dig utföra dagliga operationer med din databas utan ansträngning.

Som namnet antyder är det inte bara en grundläggande CRUD-generator, utan snarare en komplett mall för en databasapplikation. Låt oss ta en snabb titt på ett par av de kraftfulla funktionerna i detta plugin:

  • inbäddade redigeringar
  • filuppladdningar
  • stöd för JavaScript-plugins
  • gå med i verksamheten
  • sökning, sidnumrering och export
  • stöd för flera språk
  • och många fler

Och här är en snabb titt på koden som du skulle använda för att skapa ett grundläggande CRUD-gränssnitt:

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

Det är allt! Besök den officiella sidan för denna CRUD-plugin på CodeCanyon för en inblick i hur kraftfull denna plugin är.


  1. Hur kan jag infoga data i SQL Server med VBNet

  2. Filtrera varningsloggar i EM13c

  3. Hur läser man alla rader från en enorm tabell?

  4. Skillnaden mellan TRIM() och TRIM_ORACLE() i MariaDB