Nouvelle version de Coat::Persistent : 0.104

En travaillant sur mes slides pour FPW 2009, je me suis penché un peu sur le code de Coat::Persistent histoire que tout soit bien propre.

Du coup, j’en ai profité pour modifier subtilement la gestion des drivers DBI. En effet, comme me l’avait fait remarquer Sébastien Déseille dans un échange de mails (Sébastien présentera le module Coat), uniquement les drivers MySQL et CSV étaient supportés alors qu’un simple patch d’une ligne permettait de faire fonctionner C::P avec SQLite.

Il est vrai qu’intrinsèquement, rien n’interdit d’autres drivers : le SQL généré est standard puisque produit par SQL::Abstract, et les séquences sont gérées par DBIx::Sequence et ne reposent donc pas sur le SGBD.

La seule difficulté était donc de maintenir une liste de drivers de la bonne façon. J’ai opté pour un compromis :

  • D’une part, plutôt que de lister en dur dans le code de C::P la liste de tous les drivers DBI potentiellement compatibles, j’ai préféré ne lister par défaut que ceux pour lesquels je sais que tout fonctionne bien
  • D’autre part, le module propose une interface pour laisser le programme appelant modifier ce registre de drivers, il peut ainsi – sans patcher C::P – modifier ou ajouter les drivers connus

La documentation a été mise à jour et montre l’usage des nouvelles méthodes drivers(), get_driver() et add_driver().

This entry was posted in Programmation and tagged , , . Bookmark the permalink. . 565 views.

Comments are closed.