Question

Est-ce que quelqu'un utilise Phing déployer des applications PHP, et si oui, comment l'utiliser ?Nous disposons actuellement d'un script de « configuration » écrit à la main que nous exécutons chaque fois que nous déployons une nouvelle instance de notre projet.Nous vérifions simplement SVN et l'exécutons.Il définit certaines variables de configuration de base, installe ou recharge la base de données et génère un hôte virtuel pour l'instance de site.

J'ai souvent pensé que nous devrions peut-être utiliser Phing.Je n'ai pas beaucoup utilisé Ant, donc je n'ai pas vraiment une idée de ce que Phing est censé faire autre chose que scripter la copie de fichiers d'un endroit à un autre, tout comme le fait notre script d'installation.Quelles sont les utilisations plus avancées dont vous pouvez donner des exemples pour m'aider à comprendre pourquoi nous voudrions ou non intégrer Phing dans notre processus ?

Était-ce utile?

La solution

De Federico Cargnelutti article de blog:

Les fonctionnalités incluent les transformations de fichiers (par ex.Remplacement des jetons, transformation XSLT, transformations de modèle Smarty), opérations de système de fichiers, support de génération interactive, exécution SQL, opérations CVS, outils pour créer des packages de poire, et bien plus encore.

Bien sûr, vous pouvez écrire des scripts personnalisés pour tout ce qui précède.Cependant, l’utilisation d’un outil de build spécialisé comme Phing vous offre un certain nombre d’avantages.Vous utiliserez un framework éprouvé, donc au lieu d'avoir à vous soucier de la configuration de « l'infrastructure », vous pourrez vous concentrer sur le code que vous devez écrire.L'utilisation de Phing facilitera également la tâche lorsque de nouveaux membres rejoindront votre équipe, ils seront en mesure de comprendre ce qui se passe s'ils ont déjà utilisé Phing (ou Ant, sur lequel Phing est basé).

Autres conseils

Je suis passé de Ant à Phing « juste parce que » c'est PHP.Je l'utilise pour exporter à partir de différents référentiels Subversion, copier des éléments, créer différents packages d'installation, etc. tout cela avec un fichier XML réutilisable de 20 lignes et un fichier de configuration avec des éléments spécifiques au projet.Je ne pourrais pas le faire aussi vite avec un script personnalisé.Je prévois également d'intégrer la génération de documentation API et les tests unitaires.Aimer!

La réponse convaincante pour moi est que phing comprend les chemins de classe PHP.La fourmi ne le fait pas.Je ne veux pas avoir un build.xml fourmi rempli de commandes d'exécution.Il se trouve que je suis principalement un programmeur Java et que j'utilise toujours Phing.C'est le meilleur outil pour le travail.

Nous utilisons Phing pour déployer SémantiqueScuttle:

  • générer une archive zip pour la distribution
  • créer POIRE emballer
  • télécharger fermeture éclair vers SourceForge
  • mettre à jour le Canal POIRE avec le nouveau fichier du package
  • restituer la documentation reStructuredText dans des fichiers HTML et les télécharger.Actuellement avec exec mais je suis en train d'écrire un tâche distincte pour ça.

Le téléchargement du fichier zip et du canal se fait via rsync, qui n'est malheureusement pas pris en charge par phing via une tâche spéciale - mais en utilisant exec est toujours possible et fonctionne bien.

Au final, cela nous fait gagner beaucoup de temps et nous pouvons tester, packager et déployer notre application avec une seule commande (ce qui nous donne un autre point sur le sujet). Joël Test).Je ne voudrais pas vivre sans.

Voir le code build.xml.

Je ne vois aucune raison impérieuse d'opter pour Phing.Je veux dire, les programmeurs PHP devraient-ils tenter de réécrire Eclipse "juste parce que" il pourrait être plus facile d'écrire des plugins Eclipse en PHP ?Je ne pense pas.

Ant a une meilleure documentation, y compris quelques bons livres O'Reilly, et elle est bien établie dans l'univers Java, vous évitez donc les problèmes de (1) "nous n'avons pas encore copié la fonctionnalité X sur phing" et (2) le risque du projet Phing en train de mourir. Voici un article sur la configuration de PHPUnit pour fonctionner avec ant et cruisecontrol :pas si difficile.Et vous bénéficiez de l'intégration d'Eclipse gratuitement.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top