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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Gérer le cycle de vie d'une application PHP avec Phing [Tutoriel]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut Gérer le cycle de vie d'une application PHP avec Phing
    Phing est un outil permettant de gérer toutes les opérations annexes à votre développement.

    Venez le découvrir :
    Gérez le cycle de vie de vos applications PHP avec Phing

    Que vous soyez débutant ou confirmé, vous avez surement déjà vécu ce scénario :
    Vous venez de livrer votre produit, un problème apparaît. Vous êtes fatigué, un seul fichier PHP semble incriminé. Vous le corrigez. Vous décidez de passer outre votre procédure de livraison. Vous transférez directement le script PHP "corrigé" sur le serveur de production et là, c'est le drame...

    C'est une situation où, aveuglé par la fatigue, l'on s'en veut de s'être comporté comme le pire des débutants. Phing est la solution pour éviter qu'un tel problème ne se reproduise.
    Découvrez, tout au long de cet article, le potentiel de cet outil dans la gestion des opérations annexes au développement pour justement éviter que votre projet déraille au dernier moment.

    Venez participer à cette discussion en nous faisant profiter de votre propre expérience :

    - Comment gérez vous le packaging et le déploiement de vos applications en PHP ?
    - Avez vous déjà utilisé Phing ? Si c'est le cas, qu'en avez vous pensé ?
    - Avez vous utilisé d'autres outils qui permettent de faire ce genre d'opération ?
    - Avez vous mis en plus un environnement d'intégration continue à l'aide de Phing ? Si c'est le cas, quel outils avez vous utilisé ?

    Fabien

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2009
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 467
    Points : 1 253
    Points
    1 253
    Billets dans le blog
    2
    Par défaut
    Dans quelle mesure le fichier build.xml est compatible avec ant ?

  3. #3
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Phing s'inspire de Ant sur l'architecture, les concepts et sur le nom de certaines tâches (voir parfois les arguments de celle ci).

    Néanmoins, un script build.xml pour Ant a très peu de chance d'être compatible avec Phing sans retouche (Il y'a beaucoup de tâches Ant qui n'ont pas d'équivalent direct dans Phing).

    Phing est un projet moins riche et moins mature que Ant. Néanmoins, il est écrit pour des applications PHP et offre certaines facilités avec les projets développés avec ce langage.

  4. #4
    Membre éclairé Avatar de Code62
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Points : 898
    Points
    898
    Par défaut
    Bonjour,


    J'ai trouvé l'article très clair et très intéressant, malheureusement le package d'exemple, contenant "deux exemples supplémentaires qui nous donneront un meilleur aperçu du potentiel de Phing" est "not found on this server"

    Merci d'avance =)
    "Le premier venu peut écrire du code qu'un ordinateur peut comprendre. Les bons programmeurs écrivent du code que les humains peuvent comprendre."
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
    (Martin Fowler)

  5. #5
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Bonjour,

    J'ai corrigé ça. Le package d'exemples est de nouveau téléchargeable. Je m'excuse pour ce désagrément.

    Cordialement,
    Fabien

  6. #6
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 6
    Points
    6
    Par défaut fichier Build.xml ??? newbi
    bonjour,
    en fait j'ai bien compris l'utilisation de phing avec ce petit tuto "Bon travail et merci bcp"; mais j'ai un problème pour le fichier build. Comme je ne m'y connais pas en xml, es ce que vous pouvez me donner un lien me permettant de trouver l'essentiel pour faire mon fichier de build (du genre le manuel php en ligne).
    Merci d'avance

  7. #7
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Tu trouveras les informations que tu cherches dans le Getting Started de Phing. C'est malheureusement en anglais :

    http://phing.info/docs/guide/stable/...ngStarted.html

    Le package d'exemples qui est rattaché à cet article contient plusieurs exemples directement utilisables :

    http://farcellier.developpez.com/tutoriels/php/phing-gerer-cycle-vie-projet/fichiers/package_exemples.zip/package_exemples.zip

    Si tu as une question plus précise, n'hésite surtout pas à la poser sur le forum :
    http://www.developpez.net/forums/f241/php/outils/

    Cependant, je ne passe pas beaucoup sur ce forum en ce moment, donc envoie moi un message privé pour m'indiquer que tu as ouvert un sujet. J'essaierai d'y répondre.

    Fabien

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Petite question sur les bonnes pratiques avec phing et dbdeploy :

    Tous mes sites utilisant l'application sont en version 1.0.0

    Je viens de valider ma version de développement, aussi elle passe en pré-production en version 1.1.0 sur les sites A, B et C.
    Manque de pot, cette version a un bug, et je dois faire une version corrigeant le problème en 1.1.1.
    Je passe cette version en pré-production sur les sites A, B et C. Cette fois, tout se passe bien, Je peux donc passer les sites D, E et F de la version 1.0.0 à 1.1.1.

    DBdeploy gére ce genre problème de différentiel de base de données.
    Par contre je n'ai pas qu'un site à déployer, mais n, qui peuvent en plus avoir des versions différentes.

    Du coup, je ne vois pas de manière très simple de gérer cela avec phing, sauf à faire un build par type de déploiement (prepro, prod), mais cela complique un peu la maintenance.

    Avez vous des retours d'expérience sur ce genre de situation ?
    Merci.

  9. #9
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Vous poussez au delà des connaissances que j'ai à ce sujet.

    DBdeploy est un outil développé à l'origine pour JAVA.
    Vous trouverez peut être de l'aide à son sujet sur le site officiel.

    Concernant la multitude de site, c'est un point délicat qui relève davantage de votre organisation interne que de Phing. Ce qui suit est un avis personnel.
    Si vous avez une étape de pré production, vous avez tout intéret à avoir une target associée à celle-ci.
    Un fichier de build exprime une logique de construction. C'est dans l'idéal l'expression d'un processus de livraison. Essayer de suivre l'organisation du document qui spécifie votre workflow (processus de livraison).

    Si la target de pré production et de production font la meme chose mais seulement pour des sites différents (seul le nom du site, l'adresse du serveur ...), vous pouvez utiliser la tâche Phingcall ou phing pour appeller une target générique build pour un site en fixant certaines propriétés. Vous l'appellez une fois par site.
    Toujours dans la même optique qu'au dessus, si vous faites ça, modifiez votre document de spec de votre processus pour exprimer le rôle de la préproduction (appeller le build pour chacun des sites expérimentaux), de la production (appeller le build pour tous les sites) et du build (détail des actions effectués).

    Phingcall est très puissant mais je pense que vous semblez avoir conscience du piège. Un abus de cette instruction conduirait à avoir un fichier de build incohérent et ressemblant à ce qu'on appellerait du code spaghetti.

    Fabien

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Merci

  11. #11
    Membre régulier

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 18
    Points : 108
    Points
    108
    Par défaut Petite typo dans l'article
    Bonjour,

    Dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <copy file="helloworld.php" tofile="./build/release/helloworld.php /">
    la guillemet finale n'est pas à la bonne place, ce qui provoque un message lors du lancement de la commande Phing :

    BUILD FAILED
    Error reading project file [wrapped: /home/fblanc/workspace/testphing/build.xml:15:18: Error initializing nested element <echo> [wrapped: phing.tasks.system.CopyTask doesn't support the 'echo' creator/adder.]]
    Total time: 0.2857 seconds
    Il faut en fait la remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <copy file="helloworld.php" tofile="./build/release/helloworld.php" />

    Cordialement,
    Fred

Discussions similaires

  1. Problème avec le cycle de vie d'une application
    Par sebagot dans le forum Android
    Réponses: 2
    Dernier message: 29/11/2014, 23h57
  2. [Sonar] Pb pour analyser une application PHP avec Sonar
    Par fmarie3 dans le forum Qualimétrie
    Réponses: 3
    Dernier message: 23/12/2013, 21h05
  3. Cycle de vie d'une application et celui d'une Activity
    Par androidisme dans le forum Android
    Réponses: 4
    Dernier message: 04/09/2010, 21h51

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