IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

php-svn et php7


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut php-svn et php7
    Bonjour,

    J'utilise le paquet php5-svn (sous Debian) pour afficher les revisions d'un repository SVN en PHP.
    Malheureusement pour moi ce paquet a disparu avec php7, et forcement voici ce que je recupere dans mes logs:
    PHP Fatal error: Uncaught Error: Call to undefined function svn_auth_set_parameter() in /blablabla/encoredublabla.php
    Existe il une autre façon, sous php7, de communiquer avec le serveur svn?

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Ca concerne plus le côté serveur que PHP en tant que tel mais cette information est disponible sur PHP Manual : https://www.php.net/manual/en/svn.installation.php

    Après, ça fait super longtemps que je n'ai pu installé d'extension PECL donc je ne pourrai pas aider plus, désolé.
    Ici j'ai trouvé un package qui dit être compatible PHP 7/0 : https://github.com/xknown/php_svn

    Dans mes recherches, j'ai également trouvé quelqu'un qui disait que le portage pour PHP 7 n'avait pas été fait mais cet article datait de février 2018...

    Bref, bon courage

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Ça fait des années que je cherche une solution... Effectivement le portage php7 n'a pas été effectue. Je me demande pourquoi, svn (a la différence de csv) est toujours d’actualité, non?
    J'ai toujours la solution d'installer une Debian "oldstable" mais franchement... ça pue!

    J'avais vu cette page a propos du package php_svn, mais je n'ai pas trouve l'ombre d'une documentation / tutoriel / howto...

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    J'avais fait un truc dans le genre y'a quelques années pour récupérer une partie des logs d'un dépots (et donc les numéros de revision associés).

    En gros j'appelais l'executable svn comme ca :

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    svn log http://url-du-depot/trunk --limit 5 --xml --username user --password mdp

    Ce qui retourne un xml du type :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <logentry revision="1">
    <author>harry</author>
    <date>2008-06-03T06:35:53.048870Z</date>
    <msg>Initial Import.</msg>
    </logentry>

    Qu'il ne reste plus qu'à parser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    private function parseSVNLog($logs)
        {
            $xml = simplexml_load_string($logs);
     
            if (!$xml)
                throw new InvalidArgumentException('Impossible de parser les logs');
     
            $datas = array();
     
            foreach ($xml as $logentry) {
                $date = new DateTime((string) $logentry->date);
                $date->setTimezone(new DateTimeZone('Europe/Paris'));
     
                $message = (string) $logentry->msg;
     
                $datas[] = array(
                    'rev' => (int) $logentry['revision'],
                    'author' => (string) $logentry->author,
                    'date' => $date,
                    'msg' => nl2br($message)
                );
            }
     
            $xml = null;
     
            return $datas;
        }

    Je me demande pourquoi, svn (a la différence de csv) est toujours d’actualité, non?
    Plus vraiment , git est quand même devenu le standard un peu partout
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par grunk Voir le message
    Plus vraiment , git est quand même devenu le standard un peu partout
    Du coup de viens de cloner mon projet svn sous git, et j'ai surtout galéré a créer l'interface http (mon serveur apache a déjà pas mal de monde dessus...).

    Reste a vois si j'arrive a adapter mon php pour utiliser git. Sinon je ferai avec "svn log" directement mais bon, c'est l’occasion de me mettre a jour sur tous mes projets...

    Merci!

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Attention sous git la notion de numéro de révision n'existe pas comme sous svn. Tu as un hash généré à chaque commit mais c'est tout
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par grunk Voir le message
    Attention sous git la notion de numéro de révision n'existe pas comme sous svn. Tu as un hash généré à chaque commit mais c'est tout
    C'est exactement ce que je suis en train de découvrir...
    Et je ne vois pas de bibliothèque php spécifique pour git (j’espère me tromper), pour le moment j'ai au mieux ceci (source: https://gist.github.com/geeknam/961488):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
    // Author: Ngo Minh Nam
    $dir = "/path/to/your/repo/";
    $output = array();
    chdir($dir);
    exec("git log",$output);
    $history = array();
    foreach($output as $line){
        if(strpos($line, 'commit')===0){
    	if(!empty($commit)){
    	    array_push($history, $commit);	
    	    unset($commit);
    	}
    	$commit['hash']   = substr($line, strlen('commit'));
        }
        else if(strpos($line, 'Author')===0){
    	$commit['author'] = substr($line, strlen('Author:'));
        }
        else if(strpos($line, 'Date')===0){
    	$commit['date']   = substr($line, strlen('Date:'));
        }
        else{		
    	$commit['message']  .= $line;
        }
    }
    print_r($history);
    ?>

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Git est souvent utilisé combiné à des outils comme gitlab ou github qui eux expose des api pour interagir avec des dépots.
    Mais si tu as un simple dépot git, il n'ya effectivement pas beaucoup d'autre solution que d'appeler la commande git et de parser son retour
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2013
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    C'est ce que je suis en train de faire...
    Mais dans le shell Linux je ne trouve pas comment on peut, par exemple, afficher l'avant dernière version d'un fichier en particulier. Je regarde du cote de "git cat-file" mais pour le moment je ne trouve pas mon bonheur.
    EDIT: pour afficher un "vieux" fichier je fais comme ca:
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    git show 97ef455a80be40c955fbe0805a8f65669900c836:fonctions.php

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Environnement Collaboratif: Eclipse PHP SVN
    Par adilooo dans le forum Eclipse PHP
    Réponses: 2
    Dernier message: 11/11/2009, 13h02
  2. Trac & SVN en PHP
    Par anthyme dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 15/10/2009, 15h36
  3. Interpretation de PHP via libapache2-svn
    Par SebastienM dans le forum Réseau
    Réponses: 1
    Dernier message: 11/03/2008, 11h16
  4. Réponses: 5
    Dernier message: 06/09/2007, 16h52
  5. [Utilisation] Pb script php pour mise à jour via SVN
    Par dmk04 dans le forum Subversion
    Réponses: 1
    Dernier message: 30/08/2007, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo