Stockage des commentaires, sqlite ?
Par Nicolas L. le mercredi, mai 30 2007, 23:47 - Développement - Lien permanent
J'aimerais faire un point sur les commentaires. Dans la version 0.5 j'ai introduis la possibilité de laisser des commentaires sur les photos car la demande était très forte. J'avais eu un problème à l'époque, problème que j'ai toujours plus ou moins aujourd'hui : comment stocker efficacement des commentaires sans base de données ?
- fichiers textes : un peu galère, il faut gérer correctement les retours à la ligne, définir un format de fichier correct.
- sérialisation d'objet : très facile à implémenter, mais très peu souple : si la structure de l'objet sérialisé change, il devient difficile de récupérer le contenu du fichier sérialisé. Je ne pense pas non plus que la sérialisation soit un vrai moyen de persistance.
- fichiers xml : usine à gaz en php, surtout sans simpleXml de php5
- utiliser une base de données
Les trois méthodes posent la problématique suivante : faut-il utiliser un seul fichier de stockage, ou un par galerie ? Faire une zone d'administration correcte avec un fichier par galerie c'est difficile rapidement et simplement du fait que l'information n'est pas centralisée.
La version stable actuelle de luxbum utilise une base de données MySQL. Cela pose des problèmes continus car c'est radicalement plus compliqué que le reste de luxbum et que je n'ai pas fait une implémentation correcte. J'avais voulu rester dans l'idée de simplifier la vie de l'utilisateur, la création de la table MySQL est censée être automatique, mais ça ne fonctionne pas correctement ; il faut également au préalable disposer d'une base de données MySQL. En développant la future version j'ai découvert la sérialisation des objets, j'ai donc supprimer la base MySQL et remplacé par un fichier sérialisé dans chacune des galeries. Seulement lors de mes premiers travaux sur la refonte du manager je me suis heurté au problème de l'administration centralisées des commentaires rendue difficile par l'éclatement des commentaires dans chacun des dossiers des galeries.
Depuis j'ai transformé luxbum en php5, je me rend compte que sqlite pourrait reprendre le meilleur de chacun des mondes. Je n'ai pas encore décidé si je vais utiliser sqlite pour le stockage des commentaires, mais il y a de très fortes chances. Pour ne pas pénaliser les personnes disposant d'un hébergement sans sqlite, il faut que je réfléchisse à la possibilité de supporter la sérialisation et sqlite comme deux supports de stockage des commentaires.
Commentaires
pour les commentaires sur les images, des api existent en php pour lire et d'autre pour écrire les infos exif d'une image.
j'avais déjà pensé à ça mais j'ai jamais avancé sur le sujet.
il serait top que les commentaires ajoutés par interface web et téléchargeables après puisse modifier l'image originale pour quelle embarque les commentaires directement dans son fichier.
http://gallery.menalto.com/node/387...
hum, je ne connaissais pas du cette librairie, je vais regarder ça de plus prêt.
Par contre, concernant l'inscription des commentaires dans les photos, je ne le ferais pas, et ce pour plusieurs raisons :
- la disperssion des commentaires dans les différentes photos rend très très difficile la création de la page d'administration des commentaires, voire impossible
- la récupération des informations exif est une opération relativement lourde, du moins plus lourd que l'accès à une base sqlite ;
Merci !
Si il s'agit de commenter les photos par la personne qui en est le propriétaire ; oui la fonction me parait très importante.
Si il s'agit de pouvoir offrir aux visiteurs de passage la possibilité de laisser des commentaires ( niais - comme le mien ;o) c'est complètement gadget.
Un fichier texte dans chaque galerie, voir pour chaque photo dans un sous dossier.
1)Le texte est très simple à récupérer (plus simple que de devoir exporter une base de donnée).
2)SURTOUT : Compatible avec n'importe quel hébergeur.
Certaines grosses applis comme Dokuwiki marchent avec des fichiers textes sans problèmes.
Le format ?
Simplement quelque chose pas prise de tête :
luc#Chouette photo.
Ninor#Va faire un tour sur ma galerie !
Ça marche très bien. Si tu as peur de séparer les commentaires avec \n, ajoute un | à la fin de chaque ligne, par exemple.
J'adore luxbum pour sa simplicité, mais c'est vrai que j'ai été un peu déçu quand j'ai vu qu'il fallait activer mysql.
Merci pour ton boulot en tout cas.
Cest quand meme mieux que Miss France