Accueil du site > Wiki > osCSS 2.xxx > Developpeurs > Environement du backoffice > Accès au data, tranversalité des appels aux données

Accès au data, tranversalité des appels aux données

mardi 27 septembre 2011, par oscim

La version 2.1.1 modifie quelque peu la topographie des fichiers, quant à l’accès aux données, et l’utilisation de l’appel à des données dans des page ou modules externe au type de données utilisé.

Je m’explique, la class permettant d’accéder et de manipuler les produits, à été déporté dans un dossier classes/driver. Il est donc accessible en permanence, au delà des pages spécifiques aux produits.

Cette forme d’écriture, permet de rendre l’acces et la liaison vers les données, et éventuellement leur modification plus synthétique, et centralisé.

L’interface

Un interface à été mise en place pour structuré la base de ces drivers, celui ci est présent dans class.interface.php.

Interface ModSqlDataDriver {
  public static function create($option);
  public static function update($option);
  public static function fetch($option);
  public static function delete($option);
}

Les drivers

Les drivers implémentant cet interface ne contiennent donc que des méthode public static. Il est donc simple de pourvoir les utilisé, en faisant référence à la class.

L’ensemble des arguments de ces driver sont composé par des tableau.

L’appel au produit d’id 5 aura lieux comme suit :

sqlproduct::fetch(array('id'=>5, 'language_id'=>1))

Liaison avec les modules ACA

Les drivers devant gérer les modules aca (produits/cat, post...) intègres dans le drivers l’appel au action des modules aca, assurant ainsi leurs prise en charge lors des modifications.

Dans la plupart des cas, il suffit d’utiliser la class ACAFactory pour obtenir la liaison vers ces module

Conclusion

A terme, l’ensemble des interactions sur la base de données transiterons par ces drivers, afin de simplifier la maintenance, et rendre plus simple les appels.

Ces drivers sont chargée en autoload, et ne nécessite donc pas d’être requis ou inclus avant utilisation.