mah ... io sono del parere che una classe che funzioni da wrapper per uno specifico database può essere utile principalmente per acquisire esperienza, in secondo per avere maggiore controllo e funzionalità (ad ogni query che esegui puoi eseguire statistiche, controlli, check di errori e comportarti di conseguenza invece di ripetere il codice per ogni query in tutte le pagine) ed in terzo ti può facilitare la transizione da un database ad un'altro
in una seconda fase, appena capisci BENE, come funziona e come si comporta, ti consiglio, prima di iniziare a scrivere, di dare un'occhiata a PDO, di cui antrea ha scritto il porting per php4 e php5.0 (php5.1 supporta nativamente PDO)
ovviamente tieni in considerazione che:
- è un prodotto relativamente giovane
- per eseguire operazioni comuni devi scrivere un wrapper per PDO
per finire dai un'occhiata a come lavorano, ovvero all'interno del codice, e a cosa "esportano", ovvero quali classi e quali funzioni mettono a disposizione, i vari layer di astrazione presenti
come terza e definitiva fase puoi benissimo scriverne uno tu
discorso ben diverso per un sistema di astrazione per le query che, pur essendo utile in determinati casi, ovvero dove sai PER CERTO, che il tuo codice dovrà girare su diversi database, quindi sai anche a priori che potrai coprire i costi dello sviluppo di una cosa del genere vendendo il tutto a più clienti, è ben più complicato di quanto tu possa immaginare:
- necessiti una conoscenza buona degli standard SQL 92 e 99
- necessiti di avere una certa "flessibilità mentale" per poter adattare il tuo codice senza stravolgerlo totalmente per fargli fare tutto quello che ti serve rispettando le tue strutture su tutti i database che non supportano le funzionalità che vuoi
- necessiti di avere un'approfondita conoscenza delle espressioni regolari e/o dei sistemi di parsing, anche se, molto spesso, conviene usare più le espressioni regolari (ti serve per ricostruire le funzionalità che usi usando un subset di funzioni messe a disposizione dal rdbms per poi reimpacchettare i dati durante l'estrazione [per espressioni regolari mi riferisco principalmente alle PCRE dato che le EREG sono infinitamente più lente, non ci sta proprio paragone]
- TANTA pazienza
- codice da cui prendere spunto
- attenzione ai particolari
- voglia di farlo
![]()