Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-01-2008 14:34:07

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

APP_VERSION

bonjour je vous donne ici une classe écrite pour php 4 qui me servait à récupérer le tag CVS ayant servit à faire la livraison de mon application.

dans mon processus de livraison je met un tag à ma version G2R3C1et je fais un export CVS c'est cela que je mets sur mon serveur
cette classe ser à définir des constante dans l'application qui contiennent ce tag. (en général je l'affiche dans le pied de page) cela permet de voir sur quelle version on travaille.

Code:

<?php
/**
   @class AppVersion
   @brief Version de l'appli au format GOROCO ou Revision selon
   l'environnement et le niveau de livraison. 
   
   Attention, le code tient de la haute voltige !!!
   
   @section cvstags Construction des keywords de Cvs
   dans preg_match(pattern, subject, matches) subject est construit
   de façon à être interprété par Cvs sans l'être par Php.
   
   @section extract Extraction de la version
   S'il existe un TAG CVS (au format GOROCO) on le prend, il est 
   identique pour tous les fichiers du projet et reflète donc la 
   version de l'application, sinon on prend le n° de revision de 
   ce fichier, qui n'a pas de pertinence particulière mais qui 
   indique tout au moins que la version courante n'est pas une 
   version livrable.
*/
class AppVersion extends StdObject {
   /**
      Définit les constantes APP_VERSION & APP_VERSION_DATE
      si APP_VERSION n'est pas déjà définie par l'application elle-même.
      Cette définition utilise les Tags de marquage de version de CVS.
   */   
   function read() {
      if (!defined('APP_VERSION')) {
         $null = "";
         preg_match('/(Name: )(.*) $/', "\$Name: $null", $versionname);
         // A defaut version cvs du fichier
         preg_match('/(Revision: )(.*) $/', "\$Revision: $null", $revisionname);
         if (isset($versionname[2])&&($versionname[2]<>"")) {
             define("APP_VERSION", $versionname[2]);
         }else{
             define("APP_VERSION", $revisionname[2]);
         }
         // date (attention : du fichier)
         preg_match('/(Date: )(.*) (.*) $/', "\$Date: $null", $versiondate);
         define("APP_VERSION_DATE", ereg_replace("([0-9]{4})/([0-9]{2})/([0-9]{2})", "\\3/\\2/\\1", $versiondate[2]));
         unset($null);
         unset($versionname);
         unset($revisionname);
         unset($versiondate);
      }
   } // end function AppVersion
   
} // END class AppVersion

je vous laisse le soin de la porter en php 5
A+JYT

Hors ligne

 

#2 23-01-2008 16:03:17

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: APP_VERSION

Ca c'est pour des gros appli (ou pas?).
Moi je dév surtout des sites "classiques" (e-commerce, annonces, vitrines) et j'ai pas besoin de truc comme ça (enfin je crois pas).

Merci quand même (pour les autres).
Très bonne esprit (comme ton super blog wink )

Hors ligne

 

#3 23-01-2008 16:11:46

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

Re: APP_VERSION

effectivement je fait plutôt dans le gros

mais gérer son projet même petit dans un CVS a des avantages.
entre autre si l'appli peut être diffusé en plusieurs exemplaire avoir un marqueur dans toute l'application qui donne la version permet d'assurer une meilleur maintenance. (même si elle est petite)

pour installer une appli je ne prends jamais les fichiers dans mon projet
je mets le tout dans CVS je tague la version et j'exporte

s'il y a un pb et que je ne peu pas le reproduire parce que le projet à évolué je peu avec le tag récupérer la version et l'installer pour faire des tests.

bref c'est une façon de faire très répendue. en C++ j'utilisais un define ou un const pour faire ça
le $ dans la valeur n'étant pas génant en C je le laissais tel quel
mais en php mieux vaut le supprimer.

A+JYT

Hors ligne

 

#4 23-01-2008 16:19:11

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: APP_VERSION

(Oula va falloir que j'me documente sur ce qu'est un CVS et ce qui va avec... J'me sens comme une bille... smile )

Hors ligne

 

#5 23-01-2008 19:28:57

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

Re: APP_VERSION

Salut,

Regarde plutôt SVN que CVS. C'est son successeur logique : le principe est le même, mais c'est bcp mieux fait (notamment parce qu'il gère les répertoire et les branches beaucoup plus simplement).
Perso j'ai un souvenir ému du jour où j'ai découvert SVN et où j'ai jeté violemment CVS aux oubliettes smile

A+, Philippe


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

Hors ligne

 

#6 23-01-2008 19:42:25

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: APP_VERSION

Pas mieux à propos de svn vs cvs... Une fois qu'on a gouté à svn, c'est no retour
Mais il vaux qd même mieux un cvs que rien du tout.

Hors ligne

 

#7 23-01-2008 19:56:17

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: APP_VERSION

Ah ils sont cousins. Bon alors déjà je pige un peu mieux du coup. J'ai regardé le svn du zf et de jquery, mais j'ai pas encore tout saisi smile

Hors ligne

 

#8 23-01-2008 21:02:02

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

Re: APP_VERSION

oui SVN c'est mieux
il gère mieux les suppressions et surtout il gère enfin les dossiers (Dans CVS seul les fichiers sont géré pour les dossier il faut qu'il y ait quelque chose dedans)

SVN est la suite logique de CVS en fait à un moment dans l'évolution de CVS il est apparut que certaine limites seraient difficile à lever
alors il a été décidé de repartir sur un produit tout neuf reprenant les bonnes idée de CVS et ajoutant les manques tout en explorant de nouvelles approche
ce qui a donné SVN

A+JYT

Hors ligne

 

#9 23-01-2008 22:52:39

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: APP_VERSION

Merci pour ce petit cours d'histoire big_smile

Hors ligne

 

#10 24-01-2008 00:12:44

golivier
Membre
Lieu: vendée
Date d'inscription: 20-03-2007
Messages: 47
Site web

Re: APP_VERSION

Un autre point fort de SVN , c'est qu'il gère le changement de nom de fichier (sans perdre l'historique)

et a mon avis plus rapide

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