Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-10-2010 10:57:27

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Gestion de version

Salut les Zender's,

Je voudrais créer un système de gestion de version de données.
Par exemple j'écris un article et je voudrais pouvoir avoir les différentes version de cette article et pouvoir basculé de l'une à l'autre à tout moment.

J'aimerais avoir des avis, des retours d'expériences, une méthode(ou un début) pour développer ce système, savoir si avec ZEND il y a déjà des outils pour ça.

Merci beaucoup wink


A+ Guelo Super Star

Hors ligne

 

#2 01-10-2010 16:21:24

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Gestion de version

SVN
tu installe un serveur SVN
tu crée un repository (entrepôt)
ton SVN sera accessible par des URL Http:// .....

dans ton php tu fait un objet métier article et dans celui-ci tu implémente une persistance qui utilise tes url SVN pour accéder au données. SVN te propose tout ce qu'il faut ajout d'article, suppression, ajoute de version historique verrou etc.

A+JYT

Hors ligne

 

#3 01-10-2010 20:24:56

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Gestion de version

sekaijin > Je crois que tu es hors sujet. Il ne veut pas un gestionnaire de version de fichier mais un système de version de contenu de site web, un peu comme les wiki mais surement sans la syntaxe complexe des wiki.

GueloSuperStar > J'ai fait un site qui permet justement un système de gestion des versions du contenu du site. La technique que j'ai utilisé est une séparation des données en 4 tables :
- données qu'on ne veut ni historiser ni traduire (typiquement le statut actif/inactif, l'auteur, la date de dernière modification, etc)
- données qu'on ne veut pas historiser mais qu'on veut pouvoir traduire (exemple, le (sur-)nom d'un personage célèbre)
- données qu'on veut historiser sans traduire
- données qu'on veut historiser et traduire

Hors ligne

 

#4 01-10-2010 20:41:07

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Gestion de version

je ne suis pas hors sujet

je dit qu'un moyen simple de versionner ses articles c'est de mettre en place un serveur SVN
et de faire un objet métier Article qui lit et écrit le contenu de ses articles dans dans le serveur SVN

ainsi sans développer de gestion de version les article (donc le contenu) est versioné

il faut ouvrir sont esprit

une application Zend ce n'est pas obligatoirement une appli qui qui stocke ses donnée dans MySQL la persistance peut se faire sous bien des formes Ldap DB (quelle qu'elle soit) fichier text fichier XML objet php sérialisé dans des fichiers,
tous support toute technologie de stockage de l'information peu servir à assurer la persistance des données d'une application
cvs ou svn Aussi

la question qui se pose alors c'est quand on a choisit un support comment y accéder
et pour SVN c'est simple le serveur fournis des URL http pour y parvenir et Zend fourni des classes pour utiliser des url


donc son appli peut très bien socker le contenus de ses article sur un serveur SVN au même titre qu'il le ferait dans MySQL

la gestion de version est donc native

A+JYT

Hors ligne

 

#5 01-10-2010 21:34:29

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Gestion de version

Vu comme ça tu as raison, j'ai une approche trop classique. par contre pour un environnement web ou intranet, je me demande si la réactivité et la simplicité d'installation seront suffisante.
Côté flexibilité aussi j'ai des doutes avec l'utilisation d'un serveur SVN pour le stockage. Autant c'est sur que c'est utilisable si on veut juste versioner le texte du document, mais si on veut rajouter d'autres informations, ça risque de poser des difficultés à moins parser le document reçu du svn ou rajouter un autre stockage pour les données annexes ou autre.

Hors ligne

 

#6 04-10-2010 08:24:12

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Gestion de version

Merci @sekaijin pour ta réponse, c'est vrai que c'est une bonne idée mais je sais pas si je vais pouvoir le développer sur mon environnement sad

Merci @omega2 pour ta réponse, c'est un peu ce que je voulais faire, mais je ne savais pas trop comment le développer "CORRECTEMENT" smile

Je ne sais pas trop si c'est mieux de faire ça en base de données car si beaucoup de version = beaucoup de données = temps de réponse mysql de plus en plus lente ou si c'est mieux de faire ça avec un système de fichier avec des données sérialisées mais la encore beaucoup de version = beaucoup de fichiers = peu être maintiens de cette environnement difficile.

Donc je ne sais pas trop sur qu'elle méthode utilisé pour avoir un système de version de contenu bien développer,stable et évolutif.

Des idées ne serait pas de refus big_smile

Merci encore pour ce temps pris pour m'aider


A+ Guelo Super Star

Hors ligne

 

#7 05-10-2010 17:38:43

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Gestion de version

Salut les Zender's,

Je me permet de faire un ti up de mon post car j'aimerais vraiment avoir un tite aide sur mon outil de versioning.
Je veux pas forcement qu'on me mâche le travail :p mais juste des pistes, des idées, la meilleur marche à suivre.


Merci encore pour votre aide


A+ Guelo Super Star

Hors ligne

 

#8 06-10-2010 08:58:35

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Gestion de version

J'ai mis en place une gestion d'historique dans mon ORM maison :
Prenons une table à historiser, par exemple des page d'un wiki, j'ai une table page_history.

quand je fais un $page->save(), ça incrémente un numéro de version et ça crée une nouvelle ligne dans la table page_history.

ensuite quand je fais un $page->publish(), ça flaggue la page comme "publiée".

Quand je fais un $page->delete(), ça passe un flag en "pending_delete". Ensuite lors d'un publish, le flag passe en "deleted".

La page qui s'affiche réellement est donc la page qui a le flag "publish".

$page->unpublish() se contente de supprimer le flag "publish"

schématiquement la table va avoir au moins les champs suivants :

Code:

- id : id de la page
- version_number : version de la page
- content : contenu de la page
- is_publish : publiée ou non
- delete_state : null ou pending_delete ou deleted

Le couple (id, version_number) est unique, par contre le "id" n'est pas unique.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#9 06-10-2010 09:58:38

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Gestion de version

Merci @philippe pour ton aide et t'es conseils et ta façon de faire.

Donc toi tu préconise un système basé autour d'une base de données, tu as fais ce choix car tu en a testé d'autre et tu as trouvé que cet manière de faire était le meilleur ou tu as fais ce choix par défaut?

Je vais partir sur un système de versioning enregistré en base avec le même type de d'architecture.

Merci encore pour ton aide wink smile big_smile

Dernière modification par GueloSuperStar (06-10-2010 09:59:00)


A+ Guelo Super Star

Hors ligne

 

#10 06-10-2010 10:31:45

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Gestion de version

J'ai fait ce choix pour des raisons de performances et de simplicité de l'approche.

En fait j'ai ajouté un système supplémentaire : quand je publie, ça génère des contenus dans une table de cache => pour afficher les contenus en lecture, je n'ai pas besoin de toucher à la table history (qui est très grosse) et je précalcule l'affichage. Ca fait un gros gain de perfs. (et bien sur sur un unpublish ou un delete, j'efface de ma table de cache...)

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#11 06-10-2010 10:55:04

GueloSuperStar
Membre
Lieu: Paris
Date d'inscription: 05-08-2009
Messages: 107

Re: Gestion de version

Oui je comprend ton principe car moi même j'ai développé un système de cache pour le "FRONT" et donc le gain que cela peut apporter pour l'affichage des pages.
Mais au niveau du "BACKO" pour la gestion de t'es articles ce n'est pas un peu lent? vu que ta table history est lourde ça ne ralenti pas l'accès au données?


A+ Guelo Super Star

Hors ligne

 

#12 06-10-2010 13:08:56

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Gestion de version

Si, mais bon, c'est une admin. Si ça met 3s à répondre, c'est pas un drame... Pour l'instant je n'ai jamais eu assez de données pour que ça pose un problème.

Si tu comptes avoir autant d'articles d'articles que wikipédia, effectivement ça risque de poser problème smile

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages