Jusqu’a présent, le système de gestion de base de données (SGBD) par excellence avec php était MySQL. L’arrivé de php5 et sa future démocratisation bouscule cette donne en mettant en avant le SGBD SQLite.
Comment passer le MySQL à SQLite facilement? Juste en modifiant une seule variable? C’est là qu’interviennent les couches d’abstraction.
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.
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.
De moox le 20 janvier 2005
Hello. Je débute en php et j'utilise pear::DB comme couche d'abstraction bd. C'est p-e plus simple que de réécrire un driver non ?
pear.php.net/manual/en/pa...
Bravo pour ton site, moi aussi je suis avec fc3