Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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.
<?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
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 )
Hors ligne
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
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
A+, Philippe
Hors ligne
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
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
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