XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. PHP: Hypertext Preprocessor
  3. Pluf - Framework en PHP5

Ajout d'un champ de base de donnée compressé dans Pluf

The 2008-11-06 at 22:05 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.

Dans une de mes applications, je dois stocker du texte de manière importante tout en n’ayant pas le besoin de faire des recherches SQL dedans. En pratique, ce sont des emails générés automatiquement par le service. En regardant le volume dans ma base, je me suis dit : Pourquoi ne pas stocker l’information de manière compressée dans la base ?

J’ai donc ajouté un nouveau type de champ pour un modèle Pluf_Model, le champ est Pluf_DB_Field_Compressed. L’implémentation est très simple :

  • La classe de base qui donne le type de stockage dans la base et la manière d’afficher le champ quand on utilise les formulaires automatiques.
  • Le mapping d’entrée/sortie de la base qui grosso-modo dit ce qu’il faut faire avec le contenu de la base pour initialiser la propriété du modèle et ce qu’il faut faire avec la propriété avant de la stocker dans la base.

Sans compter les tests unitaires, cela représente que 12 lignes de code. Maintenant, vous comprenez pourquoi je dis que Pluf est un framework léger et rapide. Pour l’utiliser dans votre modèle, au lieu d’utiliser un champ Pluf_DB_Field_Text, vous utilisez simplement Pluf_DB_Field_Compressed. Regardez le test unitaire pour voir la simplicité d’utilisation. En pratique, cela divise la taille de l’information par 2 pour des textes genre emails.

Les fonctions PHP utilisées pour faire la compression/décompression des données sont gzdeflate et gzinflate.

Comments from readers

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS