1 - Vabbeh su questo punto posso anche passare, anche perchè in php ha poco senso

2 - Te la butto li: e se domani il file di configurazione è un xml? e poi Yaml? e poi un array php? e poi un config in altro formato, che fai? Crei una driver per ogni formato di configurazione? per questo non è responsabilità del driver parsarsi il file di configurazione, ma deve essere configurato il driver da chi lo usa

3 - cos'è PDO?

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP
"PDO definisce un'interfaccia leggera e consistente per accedere al database", ed è tutto quello che deve fare, non c'ha proprio altro da aggiungere. Sopra questa interfaccia puoi aggiungere uno strato maggiore di astrazione che PDO come "metodo secco" magari non include.

Detta poi sinceramente, l'idea di "reinventare la ruota" lascia il tempo che trova, a meno che tu non lo stia facendo per studio. Per il primo punto, ti suggerisco di usare una libreria già pronta e testata e funzionante, come Doctrine2/DBAL o direttamente l'ORM di Doctrine2. Per il secondo punto, ti suggerisco di guardare a quello che fa DBAL, magari proprio a livello di codice sorgente https://github.com/doctrine/dbal/tre.../Doctrine/DBAL

se cerchi poi materiale su internet, dovresti trovare molto sulla falsa riga di PDO vs DBAL o simili, ma un esempio di cosa voglia dire "aggiungere funzionalità a pdo" potrebbe essere l'ultima parte di questo articolo, http://gonzalo123.com/2011/07/11/dat...o-versus-dbal/ ... e DBAL\Connection non estende PDO

Quello che vuoi fare te è pari pari questa classe https://github.com/doctrine/dbal/blo...Connection.php