Qu'est ce qu'un couche d'abstraction?

De même que des drivers différents permettent l'utilisation d'une périphérie hardware à des systèmes différents; une couche d'abstraction permettra au même code php d'attaquer des bases de données différentes.

Comment?

Tout simplement car le code n'attaque pas la base de données mais la couche d'abstraction que nous appellerons drivers.

Exemple de couche d'abstraction de SGBD

Ainsi après avoir instancié les drivers adéquates (On peut passer par une variable pour lancer cette instance ce qui permet de changer de drivers en modifiant une seule variable!!!) :

// Récupération du drivers :
require_once ROOT_PATH."kernel/".$CONF['DB_SGBD'].".php";

// Instanciation :
$DB             = new Database();

// Connexion à la base de données :
$DB->connect();

Une requête ce fait alors de la sorte :

$DB->query("REQUETE")

Pour changer de SGBD, il suffit alors de coder de nouveaux drivers et de changer une variable
L'utilisation de drivers prend légèrement plus de temps pour lancer le développement, mais les mises à jour sont bien plus aisées. Alors pourquoi s'en priver ?

La prochaine étape et d'aller encore plus loin avec les couches d'abstraction en y introduisant des fonctions en plus comme celles de débugage par exemple.