Originariamente inviato da andr3a
non è propriamente un layer astratto ma un'interfaccia astratta perchè il layer fa altro ma è un' insieme di classi dedicate che risultano portabili pur usando sempre la stessa sintassi ... si chiama PDO, introdotto in PHP5 e portato nel 4 dal sottoscritto

http://www.phpclasses.org/browse/package/2572.html
No antré ... è un Layer d'Astrazione perché è uno strato che si interpone tra un set di database che espongono N funzionalità e propone M metodi per lavorare con le funzionalità comuni e Q metodi per lavorare con le funzionalità specifiche o tramite apposite estensioni alla struttura o tramite appositi metodi per lavorare con le funzioni proprietarie/non comuni

Layer -> perché è uno strato di codice che si interpone tra due componenti
Astratto -> perché "astrae" delle funzioni specifiche raggruppandole in altro funzioni per avere un'interfaccia specifica che permetta la gestione di tutto

ho appositamente usato la parola "interfaccia" perché un Layer Astratta è per sua natura un'interaccia, non potrebbe esporre funzionalità uguali per uno specifico set di funzioni se non fosse un'interfaccia

comunque tornando al discorso Database ... è meglio che ti fai la classe per 2 motivi:
1° - essendo la tua prima classe ti servirà a farti le ossa e dato che è un componente fondamentale usato ovunque è facile che avrai necessità di ristrutturarlo (ergo refactoring) ed è cosa buona
2° - capisci la logica che sta dietro a strutture come PDO et simili e ti permette sia di usarli meglio sia di sviluppare le tue strutture meglio

comunque preferisco sempre le soluzioni personalizzate, se ci sono bug si possono correggere