sql >> Database teknologi >  >> RDS >> Database

Sammenligning af PHP-databaseabstraktionslag og CRUD-plugins

I denne artikel skal vi se på forskellige databaseabstraktionslag til PHP. Vi vil også se på et par PHP CRUD-databaseplugins, der kan gøre dit liv lettere, når du interagerer med en MySQL-database.

Hvad er et databaseabstraktionslag?

Som navnet antyder, er et databaseabstraktionslag et lag, der sidder mellem din applikation og den underliggende database. Du skal bruge et databaseabstraktionslag til at interagere med din database. Fordelen ved databaseabstraktionslaget er, at du kan skifte din underliggende database-backend uden at bekymre dig om kodeændringer i din applikation. Et databaseabstraktionslag forenkler også databasekoden og gør det nemmere at oprette forbindelse til og opdatere databasen.

Lad os se på et eksempel for at forstå dette. Lad os sige, at du har valgt MySQL som en database-backend i den indledende fase af din applikationsudvikling. Du bruger ikke noget databaseabstraktionslag i din applikation, så du ender med at skrive kode, der er specifik for MySQL-backend, når du udfører databasehandlinger.

Hvad hvis du af en eller anden grund skal ændre din database-backend fra MySQL til Oracle? Dette skifte bliver ikke let. Den første ting, du skal gøre, er at gennemgå hver eneste bit af den MySQL-specifikke kode i din applikation. Du bliver nødt til at gennemgå hver linje kode, der interagerer med MySQL-databasens back-end og erstatte den med den tilsvarende kode til den nye database.

På den anden side, hvis du har brugt et databaseabstraktionslag til at interagere med databasens back-end, sker skift til en anden ODBC-kompatibel database backend på et øjeblik. Du skal blot ændre forbindelsesindstillingerne, så de afspejler den nye database-backend. Så som du kan se, skjuler et databaseabstraktionslag kompleksitet ved at lade dig tale med forskellige databaseback-ends.

Tag et kig på følgende diagram for at forstå, hvad vi har diskuteret indtil nu.

Som du kan se, sidder databaseabstraktionslaget mellem applikationen og den faktiske database, så applikationen behøver ikke at kende detaljerne for, hvordan den underliggende database fungerer.

Indstillinger for databaseabstraktionslag

Dernæst skal vi se på et par muligheder, som du kan bruge i din daglige applikationsudvikling. Lad os tage et hurtigt kig på de muligheder, som vi vil diskutere i resten af ​​artiklen.

  • BOB
  • Doktrin DBAL
  • ADOdb
  • PDOModel:Databaseabstraktion og PHP-hjælperklasse
  • xCRUD Data Management System
  • PDO Crud:Avanceret PHP CRUD-applikation

De første tre muligheder – PDO, Doctrine DBAL og ADOdb – er populære open source-muligheder og gratis at bruge. De andre tre er kommercielle muligheder tilgængelige fra CodeCanyon, så du skal betale for dem, hvis du vil bruge dem. På den anden side giver disse en masse funktioner, der giver dig mulighed for hurtigt at opsætte grundlæggende stilladser i dine applikationer. De er også rimeligt prissat i forhold til, hvad de giver, som vi vil se senere i denne artikel.

Et hurtigt kig på populære og gratis muligheder

I dette afsnit vil vi se på et par populære og gratis muligheder, som du kan bruge som et databaseabstraktionslag i dine PHP-applikationer.

BOB

PDO-biblioteket (PHP-dataobjekter) er en PHP-udvidelse, som giver en grænseflade til at arbejde med forskellige database-backends. For at bruge PDO skal du installere databasespecifikke PDO-drivere, som du vil bruge i dine applikationer.

Så hvis du vil arbejde med MySQL-databasen ved hjælp af PDO-udvidelsen, skal du sørge for, at du har aktiveret php_pdo-udvidelsen, som er en kerne-PDO-udvidelse, og pdo_mysql-udvidelsen, som giver dig mulighed for at tale med MySQL-server ved hjælp af PDO-databaseabstraktionslaget.

Selvfølgelig, hvis du vil arbejde med en anden database end MySQL, skal du installere pdo-udvidelsen til den database-backend. For mere information om de understøttede databasedrivere i PDO kan du besøge PDO-driversiden i PDF-manualen, som indeholder alt, hvad du behøver at vide.

Lære DBAL

Doctrine DBAL (database abstraction layer) biblioteket er et andet populært databaseabstraktionsbibliotek, som giver en indpakning omkring PDO. Doctrine DBAL giver brugervenlige API-metoder og et par ekstra funktioner sammenlignet med at bruge den rene PDO-udvidelse alene.

Listen over understøttede databaseleverandører af Doctrine DBAL er:

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

Doctrine DBAL er udviklet under Doctrine-projektet, som også giver en ORM (object-relational mapper), som sidder på toppen af ​​Doctrine DBAL. Doctrin ORM er et værktøj, som giver dig mulighed for at skrive databaseforespørgsler på en objektorienteret måde. Faktisk er selve ORM et bredt emne, så vi vil ikke gå i detaljer her, men jeg vil skrive en artikel om ORM i fremtiden.

ADOdb

Endelig er ADOdb et meget populært klassebibliotek og en meget gammel spiller i dette område. Det er et eksternt bibliotek, som du først skal downloade og konfigurere med din opsætning, hvis du ønsker at bruge det. ADOdb understøtter også en bred vifte af databaser at vælge imellem som din database back-end.

Ud over at levere komponenter til forespørgsler og opdatering af databasen, giver den også det objektorienterede Active Record-bibliotek, der fungerer som en ORM på samme måde, som vi diskuterede tidligere i Doctrin ORM-sektionen.

Du skal også installere tilsvarende drivere til database-backends for dette bibliotek, på samme måde som du ville gøre for PDO-udvidelsen. For eksempel, hvis du vil arbejde med en MySQL-database, skal du installere mysqli-driveren i PHP.

Så det var et hurtigt kig på et par nyttige gratis muligheder. I det næste afsnit vil vi se på et par populære kommercielle muligheder, der giver mange flere funktioner end blot databaseabstraktion.

Bedste PHP-databaseabstraktionsscripts til køb

I dette afsnit vil vi diskutere et par avancerede muligheder, som du kan vælge til et databaseabstraktionsbibliotek. Faktisk fungerer de valgmuligheder, vi har valgt, ikke kun som et databaseabstraktionsbibliotek – de giver enen masse mere end det.

PDOModel:Databaseabstraktion og PHP-hjælperklasse

PDOModel-biblioteket er en databaseabstraktion og PHP-hjælperklasse, som er bygget oven på PDO-udvidelsen. Det er en fremragende indpakning, som giver dig mulighed for at udføre indsættelse, opdatering, sletning og valg af handlinger uden at skrive nogen SQL-forespørgsler. Det giver således enkelhed og læsbarhed. Faktisk giver den indpakningsfunktioner, der giver dig mulighed for at udføre komplekse operationer ved hjælp af simple funktioner uden at skrive egentlige SQL-forespørgsler.

I øjeblikket understøtter den MySQL, Postgres, SQLite og SQL Server database back-ends. Det understøtter transaktioner og batch-operationer, hvilket er en væsentlig funktion, hvis du ønsker at importere en database fra en ekstern kilde. Kirsebæret på toppen er, at det giver dig mulighed for at eksportere data til formater som CSV, Excel, PDF, XML og mere.

Lad os tage et hurtigt kig på følgende kode, som viser, hvor nemt det er at bruge PDOModel-hjælperen.

<?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, er det en leg at udføre databaseoperationer ved hjælp af PDOModel-hjælperklassen. For mere information kan du besøge den officielle PDOModel-side på CodeCanyon.

De biblioteker, vi hidtil har talt om, har været databaseabstraktionslag, men lad os også se på et par CRUD (opret, læs, opdater og slet) plugins, der giver dig mulighed for nemt at generere stilladskode.

xCRUD:Data Management System

xCRUD er et simpelt, men kraftfuldt CRUD generator plugin skrevet til PHP og MySQL. Det giver dig mulighed for at oprette grundlæggende stilladskode på ingen tid, og det er endda også nyttigt for ikke-programmører. I sin kerne bruger den mysqli-udvidelsen til at håndtere forskellige databaseoperationer. Men du behøver ikke bekymre dig om de underliggende kompleksiteter – du skal blot bruge de brugervenlige funktioner, som xCRUD-systemet leverer.

Mens du bruger xCRUD-plugin'et, skal du bare designe dine databasetabeller, og xCRUD-plugin'et klarer resten. Med blot et par linjer kode har du en brugergrænseflade, der er klar til brug, som giver dig mulighed for at oprette og opdatere poster. Du får også en listevisning, som viser alle poster.

Lad os tage et hurtigt kig på den kode, du skal skrive for at generere CRUD-metoder til brugertabellen.

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

Er det ikke pænt? Med blot et par linjer kode har du genereret stilladskoden til brugertabellen. Og du kan gøre meget mere med dette plugin, da det kommer med mange funktioner. Du kan besøge den officielle plugin-side på CodeCanyon for at få yderligere oplysninger.

PDO CRUD:Avanceret PHP CRUD-applikation

Lad os endelig se på PDO CRUD plugin, som også er et CRUD generator plugin, som understøtter MySQL, Postgres og SQLite database back-ends. Med blot et par linjer kode er dette plugin i stand til at generere en smuk og tiltalende brugergrænseflade, som giver dig mulighed for at udføre daglige operationer med din database uden besvær.

Som navnet antyder, er det ikke bare en grundlæggende CRUD-generator, men snarere en komplet skabelon til en databaseapplikation. Lad os tage et hurtigt kig på et par af de kraftfulde funktioner i dette plugin:

  • indlejrede redigeringer
  • filuploads
  • understøttelse af JavaScript-plugins
  • tilslut dig operationer
  • søgning, sideinddeling og eksport
  • understøttelse af flere sprog
  • og mange flere

Og her er et hurtigt kig på koden, som du ville bruge til at generere en grundlæggende CRUD-grænseflade:

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

Det er det! Besøg den officielle side for dette CRUD-plugin på CodeCanyon for at få et indblik i, hvor kraftfuldt dette plugin er.


  1. Fejl ved installation af pg gem, mkmf.rb kan ikke finde header-filer til ruby ​​(Mac OSX 10.6.5)

  2. Hvad er brugen af ​​GO i SQL Server Management Studio &Transact SQL?

  3. Bloker, blokerer, blokerer på DBAs dør med SQL Server-blokering

  4. Sådan håndteres fragmentering af auto_increment ID-kolonnen i MySQL