sql >> Database >  >> RDS >> Database

PHP-database-abstractielagen en CRUD-plug-ins vergelijken

In dit artikel gaan we kijken naar verschillende database-abstractielagen voor PHP. We zullen ook kijken naar een aantal PHP CRUD-database-plug-ins die uw leven gemakkelijker kunnen maken bij interactie met een MySQL-database.

Wat is een database-abstractielaag?

Zoals de naam al doet vermoeden, is een database-abstractielaag een laag die zich tussen uw applicatie en de onderliggende database bevindt. U gebruikt een database-abstractielaag om met uw database te communiceren. Het voordeel van de database-abstractielaag is dat u uw onderliggende database-backend kunt wisselen zonder dat u zich zorgen hoeft te maken over codewijzigingen in uw toepassing. Een database-abstractielaag vereenvoudigt ook de databasecode en maakt het gemakkelijker om verbinding te maken met de database en deze bij te werken.

Laten we een voorbeeld bekijken om dit te begrijpen. Stel dat u MySQL hebt gekozen als database-back-end in de beginfase van uw applicatie-ontwikkeling. U gebruikt geen database-abstractielaag in uw toepassing, dus u zult uiteindelijk code schrijven die specifiek is voor de MySQL-back-end wanneer u databasebewerkingen uitvoert.

Wat als u om de een of andere reden de back-end van uw database moet wijzigen van MySQL naar Oracle? Deze overstap zal niet gemakkelijk zijn. Het eerste dat u moet doen, is elk stukje van de MySQL-specifieke code in uw toepassing bekijken. U moet elke regel code doorlopen die interageert met de back-end van de MySQL-database en deze vervangen door de equivalente code voor de nieuwe database.

Aan de andere kant, als u een database-abstractielaag hebt gebruikt voor interactie met de database-back-end, kunt u in een oogwenk overschakelen naar een andere ODBC-compatibele database-back-end. U hoeft alleen de verbindingsinstellingen te wijzigen om de nieuwe database-back-end weer te geven. Dus, zoals u kunt zien, verbergt een database-abstractielaag de complexiteit door u met verschillende database-backends te laten praten.

Bekijk het volgende diagram om te begrijpen wat we tot nu toe hebben besproken.

Zoals je kunt zien, bevindt de database-abstractielaag zich tussen de applicatie en de eigenlijke database, dus de applicatie hoeft niet te weten hoe de onderliggende database werkt.

Opties voor database-abstractielaag

Vervolgens gaan we kijken naar een aantal opties die u kunt gebruiken in uw dagelijkse applicatie-ontwikkeling. Laten we eens kijken naar de opties die we in de rest van het artikel gaan bespreken.

  • BOB
  • Doctrine DBAL
  • ADODb
  • PDOModel:Database-abstractie en PHP-helperklasse
  • xCRUD-gegevensbeheersysteem
  • PDO Crud:geavanceerde PHP CRUD-toepassing

De eerste drie opties - PDO, Doctrine DBAL en ADOdb - zijn populaire open-sourceopties en gratis te gebruiken. De andere drie zijn commerciële opties die beschikbaar zijn bij CodeCanyon, dus je zult ervoor moeten betalen als je ze wilt gebruiken. Aan de andere kant bieden deze veel functies waarmee u snel basissteigers in uw toepassingen kunt opzetten. Ze zijn ook redelijk geprijsd in vergelijking met wat ze bieden, zoals we later in dit artikel zullen zien.

Een snelle blik op populaire en gratis opties

In deze sectie zullen we een aantal populaire en gratis opties bekijken die je zou kunnen gebruiken als een database-abstractielaag in je PHP-applicaties.

BOB

De PDO-bibliotheek (PHP-gegevensobjecten) is een PHP-extensie die een interface biedt om met verschillende database-back-ends te werken. Om PDO te gebruiken, moet u databasespecifieke PDO-stuurprogramma's installeren die u in uw toepassingen wilt gebruiken.

Dus als u met de MySQL-database wilt werken met de PDO-extensie, moet u ervoor zorgen dat u de php_pdo-extensie hebt ingeschakeld, wat een kern-PDO-extensie is, en de pdo_mysql-extensie, waarmee u kunt praten met de MySQL-server die de PDO-database-abstractielaag gebruikt.

Als u met een andere database dan MySQL wilt werken, moet u natuurlijk de pdo-extensie voor die database-backend installeren. Voor meer informatie over de ondersteunde databasestuurprogramma's in PDO, kunt u de pagina met PDO-stuurprogramma's in de PDF-handleiding bezoeken, die alles bevat wat u moet weten.

Doctrine DBAL

De Doctrine DBAL-bibliotheek (database-abstractielaag) is een andere populaire database-abstractiebibliotheek die een omslag rond PDO biedt. De Doctrine DBAL biedt eenvoudig te gebruiken API-methoden en een paar extra functies in vergelijking met het gebruik van de pure PDO-extensie op zichzelf.

De lijst met ondersteunde databaseleveranciers door Doctrine DBAL is:

  • MijnSQL
  • Oracle
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • Motregen

Doctrine DBAL is ontwikkeld in het kader van het Doctrine-project, dat ook een ORM (object-relationele mapper) biedt die bovenop de Doctrine DBAL zit. De Doctrine ORM is een tool waarmee u op een objectgeoriënteerde manier databasequery's kunt schrijven. In feite is de ORM zelf een breed onderwerp, dus we zullen hier niet in details treden, maar ik zal in de toekomst een artikel over ORM schrijven.

ADODb

Ten slotte is ADOdb een zeer populaire klassenbibliotheek en een zeer oude speler in dit gebied. Het is een externe bibliotheek die u eerst moet downloaden en configureren met uw installatie als u deze wilt gebruiken. ADOdb ondersteunt ook een breed scala aan databases om uit te kiezen als uw database-back-end.

Naast het leveren van componenten voor het opvragen en bijwerken van de database, biedt het ook de objectgeoriënteerde Active Record-bibliotheek, die werkt als een ORM op dezelfde manier die we eerder in de Doctrine ORM-sectie hebben besproken.

U moet ook de bijbehorende stuurprogramma's voor database-back-ends voor deze bibliotheek installeren, op dezelfde manier als voor de PDO-extensie. Als je bijvoorbeeld met een MySQL-database wilt werken, moet je de mysqli-driver in PHP installeren.

Dus dat was een snelle blik op een paar handige gratis opties. In het volgende gedeelte zullen we een paar populaire commerciële opties bekijken die veel meer functies bieden dan alleen database-abstractie.

Beste PHP-database-abstractiescripts om te kopen

In deze sectie bespreken we enkele geavanceerde opties die u zou kunnen kiezen voor een database-abstractiebibliotheek. De opties die we hebben gekozen, werken niet alleen als een database-abstractiebibliotheek, ze bieden ook eenveel meer dan dat.

PDOModel:Database-abstractie en PHP-helperklasse

De PDOModel-bibliotheek is een database-abstractie en PHP-helperklasse die bovenop de PDO-extensie is gebouwd. Het is een uitstekende wrapper waarmee u bewerkingen voor invoegen, bijwerken, verwijderen en selecteren kunt uitvoeren zonder SQL-query's te schrijven. Het zorgt dus voor eenvoud en leesbaarheid. In feite biedt het wrapper-functies waarmee u complexe bewerkingen kunt uitvoeren met eenvoudige functies zonder daadwerkelijke SQL-query's te schrijven.

Op dit moment ondersteunt het MySQL, Postgres, SQlite en SQL Server database back-ends. Het ondersteunt transacties en batchbewerkingen, wat een essentiële functie is als u een database van een externe bron wilt importeren. De kers op de taart is dat je hiermee gegevens kunt exporteren naar formaten zoals CSV, Excel, PDF, XML en meer.

Laten we even naar de volgende code kijken, die laat zien hoe gemakkelijk het is om de PDOModel-helper te gebruiken.

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

Zoals u kunt zien, is het een fluitje van een cent om databasebewerkingen uit te voeren met behulp van de PDOModel-helperklasse. Voor meer informatie kun je de officiële PDOModel-pagina op CodeCanyon bezoeken.

De bibliotheken waar we het tot nu toe over hebben gehad, waren database-abstractielagen, maar laten we ook eens kijken naar een aantal CRUD-plug-ins (creëren, lezen, bijwerken en verwijderen) waarmee u eenvoudig scaffolding-code kunt genereren.

xCRUD:gegevensbeheersysteem

xCRUD is een eenvoudige maar krachtige plug-in voor CRUD-generator, geschreven voor PHP en MySQL. Hiermee kunt u in een mum van tijd basissteigercode maken, en het is zelfs handig voor niet-programmeurs. In de kern gebruikt het de mysqli-extensie om met verschillende databasebewerkingen om te gaan. Maar u hoeft zich geen zorgen te maken over de onderliggende complexiteit - u hoeft alleen maar de gebruiksvriendelijke functies van het xCRUD-systeem te gebruiken.

Terwijl u de xCRUD-plug-in gebruikt, hoeft u alleen uw databasetabellen te ontwerpen en de xCRUD-plug-in doet de rest. Met slechts een paar regels code heeft u een gebruiksklare gebruikersinterface waarmee u records kunt maken en bijwerken. U krijgt ook een lijstweergave met alle records.

Laten we eens kijken naar de code die u moet schrijven om CRUD-methoden voor de gebruikerstabel te genereren.

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

Is dat niet netjes? Met slechts een paar regels code heeft u de steigercode voor de gebruikerstabel gegenereerd. En u kunt nog veel meer doen met deze plug-in, omdat deze over veel functies beschikt. Je kunt de officiële plug-inpagina op CodeCanyon bezoeken voor meer informatie.

BOB CRUD:geavanceerde PHP CRUD-toepassing

Laten we ten slotte eens kijken naar de PDO CRUD-plug-in, die ook een CRUD-generatorplug-in is die MySQL-, Postgres- en SQLite-databaseback-ends ondersteunt. Met slechts een paar regels code kan deze plug-in een mooie en aantrekkelijke gebruikersinterface genereren, waarmee u moeiteloos dagelijkse bewerkingen met uw database kunt uitvoeren.

Zoals de naam al doet vermoeden, is het niet alleen een eenvoudige CRUD-generator, maar eerder een complete sjabloon voor een databasetoepassing. Laten we eens kijken naar een paar krachtige functies van deze plug-in:

  • inline bewerkingen
  • bestandsuploads
  • ondersteuning voor JavaScript-plug-ins
  • deelnemen aan operaties
  • zoeken, pagineren en exporteren
  • meertalige ondersteuning
  • en nog veel meer

En hier is een korte blik op de code die u zou gebruiken om een ​​basis CRUD-interface te genereren:

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

Dat is het! Bezoek de officiële pagina van deze CRUD-plug-in op CodeCanyon om te zien hoe krachtig deze plug-in is.


  1. Is er een SQL Server Profiler voor SQL Server Express?

  2. Hoe MySQL JDBC 08001 Databaseverbindingsfout op te lossen?

  3. Java Multicast Time To Live is altijd 0

  4. Blobs invoegen in MySql-databases met php