Les FDN-libs

Les FDN-libs sont une collection de bibliothèques, en perl, portables, propres et documentées. Elles couvrent un certain nombre d'éléments classiques dans le développement un site Web, ou de toute application reposant sur du Web et/ou des bases de données. Il y a trop de volume pour que cette simple page puisse en reprendre le mode d'emploi.

Pour le moment les FDN-libs sont en travaux, en profondeur, elles seront de nouveau disponibles sous peu.

Les principales fonctionnalités sont les suivantes:

- Gestion de fichiers de configuration, pour éviter la re-lecture systématique des fichiers de conf. ils sont stockés sous un forme binaire plus rapide à lire pour Perl, la version binaire étant re-générée automatiquement si le fichier texte change.

- Gestion de ré-écriture de valeurs à la vollée pour présenter de manière lisible le contenu d'une base de données par exemple.

- Un système de workflow complet et léger, utilisé par FDN pour gérer le déploiement des lignes ADSL.

- La seule implémentation en GPL du protocole Etebac3 (Échange Télématique Entre BAnque et Clients, version 3), utilisé par FDN pour payer ses fournisseurs par virements et pour les prélèvements automatiques des adhérents.

- Un module de gestion de template puissant et léger, utilisable pour le Web ou pour n'importe quoi d'autre en ascii (FDN s'en sert aussi pour générer les documents tels que factures ou mandats de dégroupages).

- Un module de gestion de formulaires HTML qui se charge tout seul de produire le code JavaScript de contrôle des champs saisis, ainsi que du contrôle de ces champs côté serveur (garantissant la cohérence entre les deux).

- Un module de création à la vollée de tableaux HTML à partir de données brutes (typiquement extraites d'une base de données) et d'un fichier de configuration décrivant la façon de les présenter.

- Des modules de gestion de bases de données permettant de manipuler les données par des fonctions de haut niveau sans écrire de SQL. Une des fonctionnalités les plus avancées est le fait que, par exemple pour stocker des logs dans une base de données, le système sait gérer la rotation des tables (quand une table est trop pleine elle est renomée et une nouvelle table vide est créée) et sait faire des recherches dans les tables après rotation comme s'il s'agissait d'une simple table normale. Une autre fonctionnalité intéressante est la capacité de stocker en base de données à peu près n'importe quelle structure Perl obtenue en imbriquant des tables de hash et des tableaux.

- Le programme plutar (Programme Léger Unifiant le Traitement des Activités Retardées) qui fait un travail similaire à at, sauf qu'il peut gérer des milliers de jobs en attente, et les exécuter de manière concurente sur plusieurs serveurs, garantissant ainsi la redondance, et une bonne gestion de la charge.

- Un module de gestion de sessions dans des fichiers gérant le nettoyage des sessions périmées. Ce module est capable de faire du hachage sur le nom de la session, répartissant les sessions en autant de sous-répertoires qu'il est nécessaire, pour ne pas pénaliser les serveurs qui ont un très grand nombre de sessions ouvertes en simultané. Il est capable de changer la profondeur de ce hashage sans perturber les sessions en cours. La méthode de hashage est paramètrable.

- Etc.

News

9 décembre 2005. Release de la version 1.0.4 des FDN-libs. Nouveautés:

- Correction d'un bug pénible dans __par_champ_ext qui ré-écrivait mal les requêtes dans certains cas de recherche dans des tables ayant subi des rotations.

- Un peu de code nouveau dans la partie sur les télétransmission bancaires, mais rien de suffisament fini pour être utilisé sérieusement.

25 juin 2006. Release de la version 1.1.1 des FDN-libs. Nouveautés:

- Ajout du module FDN::Sql::New qui gère semi-automatiquement la manipulation de tables via des formulaires. Ça permet d'avoir 3 fonctions clés pour une table: renseigne_XXX qui lit une ligne de la table XXX dans la base de donnée et place les infos dans le HASH qui va bien pour être injecté dans un formulaire d'édition; modifie_XXX qui prend le HASH extrait du formulaire et met à jour la base de données; et form_XXX qui construit le formulaire, en se basant sur FDN::Web::Forms.

- Ajout du module FDN::Web::Utils qui contient quelques fonctions toutes simples mais pratiques, par exemple send_pdf_file pour un CGI qui est censé produire un fichier PDF.

- Ajout du module FDN::Web::FormUtils qui contient quelques utilitaires autour des formulaires. Par exemple la fonction add_list_selval qui permet de monter dynamiquement, via un table de ré-écriture, la liste des valeurs d'un select dans un formulaire, par exemple en prenant les valeurs d'une base de données.

- Ajout de la génération de PostScript dans FDN::TeX::TeX.

- Ajout de l'action subst dans les règles de ré-écriture.

- Ajout d'un get_current dans FDN::Sql::Basic pour accéder à la valeur d'un séquence sans la modifier.

Téléchargements

Les sources des FDN-libs et des outils associés sont disponibles ici.

Bugs

Les rapports de bug sont à envoyer à mon adresse mail (ci-dessous) et seront traités... quand j'aurais le temps. Merci de mettre la balise [bug] dans le sujet du mail.

bayartb at edgard point fdn point fr