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

Confronto dei livelli di astrazione del database PHP e dei plugin CRUD

In questo articolo, esamineremo diversi livelli di astrazione del database per PHP. Esamineremo anche un paio di plugin per database PHP CRUD che potrebbero semplificarti la vita quando interagisci con un database MySQL.

Che cos'è un livello di astrazione del database?

Come suggerisce il nome, un livello di astrazione del database è uno strato che si trova tra l'applicazione e il database sottostante. Utilizzerai un livello di astrazione del database per interagire con il tuo database. Il vantaggio del livello di astrazione del database è che puoi cambiare il back-end del database sottostante senza preoccuparti delle modifiche al codice nella tua applicazione. Un livello di astrazione del database semplifica anche il codice del database e semplifica la connessione e l'aggiornamento del database.

Diamo un'occhiata a un esempio per capirlo. Supponiamo che tu abbia scelto MySQL come back-end di database nella fase iniziale dello sviluppo della tua applicazione. Non stai utilizzando alcun livello di astrazione del database nella tua applicazione, quindi finirai per scrivere codice specifico per il back-end MySQL quando esegui le operazioni sul database.

E se, per qualche motivo, avessi bisogno di cambiare il back-end del tuo database da MySQL a Oracle? Questo passaggio non sarà facile. La prima cosa che dovrai fare è rivedere ogni bit del codice specifico di MySQL nella tua applicazione. Dovrai esaminare ogni riga di codice che interagisce con il back-end del database MySQL e sostituirla con il codice equivalente per il nuovo database.

D'altra parte, se hai utilizzato un livello di astrazione del database per interagire con il back-end del database, il passaggio a un altro back-end del database conforme a ODBC avviene in un batter d'occhio. Devi solo modificare le impostazioni di connessione per riflettere il nuovo back-end del database. Quindi, come puoi vedere, un livello di astrazione del database nasconde la complessità consentendoti di parlare con diversi back-end di database.

Dai un'occhiata al diagramma seguente per capire di cosa abbiamo discusso finora.

Come puoi vedere, il livello di astrazione del database si trova tra l'applicazione e il database effettivo, quindi l'applicazione non ha bisogno di conoscere le specifiche di come funziona il database sottostante.

Opzioni del livello di astrazione del database

Successivamente, esamineremo un paio di opzioni che potresti utilizzare nello sviluppo quotidiano delle applicazioni. Diamo una rapida occhiata alle opzioni di cui parleremo nel resto dell'articolo.

  • DOP
  • Dottrina DBAL
  • ADB
  • PDOModel:astrazione del database e classe PHP di supporto
  • Sistema di gestione dei dati xCRUD
  • PDO Crud:applicazione PHP CRUD avanzata

Le prime tre opzioni - PDO, Doctrine DBAL e ADOdb - sono popolari opzioni open source e gratuite. Le altre tre sono opzioni commerciali disponibili da CodeCanyon, quindi dovrai pagarle se vuoi usarle. D'altra parte, questi forniscono molte funzionalità che ti consentono di configurare rapidamente l'impalcatura di base nelle tue applicazioni. Inoltre, hanno un prezzo ragionevole rispetto a quello che forniscono, come vedremo più avanti in questo articolo.

Una rapida occhiata alle opzioni popolari e gratuite

In questa sezione, esamineremo un paio di opzioni popolari e gratuite che potresti utilizzare come livello di astrazione del database nelle tue applicazioni PHP.

DOP

La libreria PDO (PHP data objects) è un'estensione PHP che fornisce un'interfaccia per lavorare con diversi back-end di database. Per utilizzare PDO, dovrai installare driver PDO specifici del database che desideri utilizzare nelle tue applicazioni.

Quindi, se vuoi lavorare con il database MySQL usando l'estensione PDO, devi assicurarti di aver abilitato l'estensione php_pdo, che è un'estensione PDO principale, e l'estensione pdo_mysql, che ti permette di parlare con il Server MySQL che utilizza il livello di astrazione del database PDO.

Ovviamente, se vuoi lavorare con un database diverso da MySQL, dovrai installare l'estensione pdo per quel back-end del database. Per ulteriori informazioni sui driver di database supportati in PDO, puoi visitare la pagina dei driver PDO nel Manuale PDF, che include tutto ciò che devi sapere.

Dottrina DBAL

La libreria Doctrine DBAL (database abstraction layer) è un'altra popolare libreria di astrazione di database che fornisce un wrapper attorno a PDO. Doctrine DBAL fornisce metodi API di facile utilizzo e alcune funzionalità aggiuntive rispetto all'utilizzo della sola estensione PDO pura.

L'elenco dei fornitori di database supportati da Doctrine DBAL è:

  • MySQL
  • Oracolo
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL ovunque
  • SQLite
  • Pioggia

Doctrine DBAL è sviluppato nell'ambito del progetto Doctrine, che fornisce anche un ORM (object-relational mapper) che si trova in cima a Doctrine DBAL. Doctrine ORM è uno strumento che consente di scrivere query di database in modo orientato agli oggetti. In effetti, l'ORM stesso è un argomento ampio, quindi non entreremo nei dettagli qui, ma scriverò un articolo su ORM in futuro.

ADOdb

Infine, ADOdb è una libreria di classi molto popolare e un giocatore molto vecchio in questo territorio. È una libreria esterna che dovrai prima scaricare e configurare con la tua configurazione se desideri utilizzarla. ADOdb supporta anche un'ampia gamma di database tra cui scegliere come back-end del database.

Oltre a fornire componenti per eseguire query e aggiornare il database, fornisce anche la libreria Active Record orientata agli oggetti, che funziona come un ORM nello stesso modo discusso in precedenza nella sezione ORM di Doctrine.

Inoltre, dovrai installare i driver corrispondenti per i back-end di database per questa libreria, nello stesso modo in cui faresti per l'estensione PDO. Ad esempio, se vuoi lavorare con un database MySQL, dovrai installare il driver mysqli in PHP.

Quindi questa è stata una rapida occhiata ad un paio di utili opzioni gratuite. Nella prossima sezione, esamineremo alcune popolari opzioni commerciali che forniscono molte più funzionalità rispetto alla semplice astrazione del database.

I migliori script di astrazione del database PHP da acquistare

In questa sezione, discuteremo alcune opzioni avanzate che potresti scegliere per una libreria di astrazione di database. In effetti, le opzioni che abbiamo scelto non funzioneranno solo come una libreria di astrazione del database, ma forniscono molto molto di più.

PDOModel:astrazione del database e classe PHP di supporto

La libreria PDOModel è un'astrazione del database e una classe PHP di supporto che si basa sull'estensione PDO. È un eccellente wrapper che consente di eseguire operazioni di inserimento, aggiornamento, eliminazione e selezione senza scrivere query SQL. Fornisce quindi semplicità e leggibilità. In effetti, fornisce funzioni wrapper che ti consentono di eseguire operazioni complesse utilizzando funzioni semplici senza scrivere query SQL effettive.

Al momento, supporta i back-end di database MySQL, Postgres, SQlite e SQL Server. Supporta transazioni e operazioni batch, che è una caratteristica essenziale se desideri importare un database da una fonte esterna. La ciliegina sulla torta è che ti consente di esportare i dati in formati come CSV, Excel, PDF, XML e altri.

Diamo una rapida occhiata al codice seguente, che dimostra quanto sia facile utilizzare l'helper 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");

Quindi, come puoi vedere, è un gioco da ragazzi eseguire operazioni di database utilizzando la classe helper PDOModel. Per ulteriori informazioni, puoi visitare la pagina ufficiale PDOModel su CodeCanyon.

Le librerie di cui abbiamo parlato finora sono stati livelli di astrazione del database, ma diamo anche un'occhiata a un paio di plugin CRUD (crea, leggi, aggiorna ed elimina) che ti consentono di generare facilmente codice di scaffolding.

xCRUD:sistema di gestione dei dati

xCRUD è un plug-in generatore CRUD semplice ma potente scritto per PHP e MySQL. Ti consente di creare codice di scaffolding di base in pochissimo tempo ed è utile anche per i non programmatori. Al suo interno, utilizza l'estensione mysqli per gestire diverse operazioni di database. Ma non devi preoccuparti delle complessità sottostanti:devi solo utilizzare le funzioni di facile utilizzo fornite dal sistema xCRUD.

Durante l'utilizzo del plug-in xCRUD, devi solo progettare le tabelle del database e il plug-in xCRUD gestirà il resto. Con poche righe di codice, avrai un'interfaccia utente pronta per l'uso che ti consente di creare e aggiornare i record. Avrai anche una visualizzazione elenco che elenca tutti i record.

Diamo una rapida occhiata al codice che devi scrivere per generare i metodi CRUD per la tabella degli utenti.

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

Non è pulito? Con poche righe di codice, hai generato il codice dell'impalcatura per la tabella degli utenti. E puoi fare molto di più con questo plugin in quanto include molte funzionalità. Puoi visitare la pagina ufficiale del plug-in su CodeCanyon per ulteriori informazioni.

PDO CRUD:Applicazione PHP CRUD avanzata

Infine, diamo un'occhiata al plug-in PDO CRUD, che è anche un plug-in generatore CRUD che supporta i back-end di database MySQL, Postgres e SQLite. Con poche righe di codice, questo plugin è in grado di generare un'interfaccia utente bella e accattivante, che ti consente di eseguire le operazioni quotidiane con il tuo database senza sforzo.

Come suggerisce il nome, non è solo un generatore CRUD di base, ma piuttosto è un modello completo per un'applicazione di database. Diamo una rapida occhiata ad un paio delle potenti funzionalità di questo plugin:

  • modifiche in linea
  • caricamenti di file
  • supporto per plug-in JavaScript
  • unire operazioni
  • ricerca, impaginazione ed esportazione
  • supporto multilingue
  • e molti altri

Ed ecco una rapida occhiata al codice che useresti per generare un'interfaccia CRUD di base:

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

Questo è tutto! Visita la pagina ufficiale di questo plugin CRUD su CodeCanyon per avere un'idea della potenza di questo plugin.