Guida all'utilizzo di PDO
Pagina 1 di 5
1. PDO: un'unica interfaccia per l'accesso ai dati
PDO (PHP Data Objects) è una delle estensioni più interessanti introdotte nell'implementazione della versione 5 di PHP; essa nasce infatti dall'esigenza di recuperare una grave mancanza che per lungo tempo aveva caratterizzato questo linguaggio di sviluppo, cioè l'assenza di un'unica interfaccia per l'accesso alle basi di dati.
Si immagini di lavorare su un progetto che prevede la creazione di un sito Web basato sull'interazione con un DBMS per l'accesso ai dati, il Database manager utilizzato potrebbe essere per esempio MySQL; a questo scopo lo sviluppatore potrà sfruttare le potenzialità messe a disposizione dalle funzioni native mysql_ based o mysqli_ based, ma cosa succederebbe se, per una qualsiasi esigenza, ci si ritrovasse di fronte alla necessità di trasferire il sito Web su un altro server che ha come DBMS di riferimento PostgreSQL?
Semplicemente si presenterebbe la necessità di dover riscrivere la propria applicazione da zero, o quasi, almeno per quanto riguarda la parte relativa all'accesso ai dati; PDO è stata realizzata proprio per evitare il verificarsi di problemi simili a quello appena descritto, grazie ad essa lo sviluppatore non avrà più delle semplici funzioni dedicate all'interazione con i database ma una vera e propria classe in grado di fornire metodi utilizzabili indipendentemente dal DBMS di riferiemento.
Questa estensione è stata introdotta nella versione 5.1 di PHP ma era già disponibile come componente PECL (PHP Extension Community Library) nella distribuzione 5.0; grazie ad essa è possibile accedere a dati messi a disposizione da differenti tipologie di Database manager tra cui anche MySQL, SQLite, PostgreSQL, SQLserver e Oracle.
Essenzialmente è possibile dire che PDO fornisce un data-access abstraction layer, cioè un livello di astrazione per l'accesso ai dati; si tratta infatti di una classe, definita forse impropriamente anche come "libreria", che mette a disposizione un insieme di sotto-classi derivate che agiscono in modo trasparente rispetto all'utente; il suo utilizzo permetterà di creare applicazioni dotate della massima portabilità possibile, l'utilizzatore potrà scegliere il DBMS di riferimento sulla base delle proprie esigenze senza particolari constrizioni relative alla tipologia di accesso ai dati dell'applicazione.
Naturalmente anche PDO presenta qualche limite seppur di importanza marginale, non è per esempio retrocompatibile con versioni di PHP precedenti alla 5, si tratta infatti di un'estensione che necessita della presenza nel core del linguaggio delle funzionalità relative alla programmazione per oggetti, indisponibili per i rilasci più datati che comunque, ormai, non godono di alcun supporto.
Inoltre, è bene tenere conto del fatto che PDO non mette a disposizione una database abstraction, quindi non è in grado di riscrivere istruzione in linguaggio SQL o di emulare funzioni che non vengano fornite dal DBMS stesso.
Per coloro che sviluppano abitualmente applicazioni utilizzando il paradigma OOP, l'utilizzo di PDO non propone particolari novità a livello sintattico, diverso è il discorso per quanto riguarda coloro che sfruttano ancora l'approccio procedurale, a questi ultimi si consiglia in via propedeutica la lettura dell'apposita guida su "PHP e la Programmazione Orientata agli Oggetti" pubblicata in questo sito.







