Version 1.0.0 - 2006/01/31

8.1 Couche d’abstraction

Les couches d’abstraction sont des fonctionnalités communes aux frameworks professionnels. L’approche Noas PHP est également d’offrir une manière unique d’accéder et de manipuler les données. Normalement notre couche d’abstraction est sensée supporter tous les SGBDR reconnues par PHP. Mais pour des raisons techniques certains ont été temporairement mis de côté. Les systèmes Postgres, Oracle, SQL Server, MySQL, DB2, Interbase, SQLite sont entièrement supportés.
Pour réaliser cette couche, nous avons dû modéliser les concepts le plus utilisés dans la manipulation des données. Nous avons donc la classe NoasExchangeLanguage, pour modéliser le langage SQL utilisé par le SGDBR, la classe NoasExchangeConnexion, pour modéliser la source de données, la classe NoasExchangeResultset, pour modéliser le curseur sur le résultat d’une requête SQL, la classe NoasExchangeStatement  pour modéliser une requête SQL, la classe NoasExchangeTransaction pour modéliser la transaction courante. Les procédures stockées ont été volontairement ignorées car elles ne sont pas supportées par la majorité systèmes. Bien évidemment d’autres classes, aussi importantes, rentre en jeu dans la mise en œuvre de la couche d’abstraction.
Vous n’êtes pas obligé de maîtriser son fonctionnement interne, mais sachez qu’elle basé sur les « drivers » qui vont agir comme une factory pour créer tous les éléments de la modélisation. Donc pour chaque système supporté, il existe un driver. La plate-forme n’est pas sensée connaître tous les drivers disponibles. Une classe de driver à la responsabilité de s’enregistrer au prés du manager, lorsque l’utilisateur charge sa définition, afin d’être reconnu.
Au de là du caractère pratique d’une couche d’abstraction, vous pouvez réellement concevoir des applications portables même du point de vu SGDB. Pour que cela soit possible, vous devez externaliser les requêtes dans des fichiers. Pour limiter les efforts de conversion, nous vous conseillons d’utiliser la norme SQL 92 et rédigez tout en minuscule. Vous pouvez faire du spécifique dans vos lignes de code, si votre application n’utilise qu’un seul système.

 

© 2005 Réoka Djohou, tous droits réservés.