Comment déployer correctement lors de l'utilisation du Compositeur développer la production / de l'interrupteur?

Compositeur a la possibilité de charger plusieurs dépendances seulement dans le développement, de sorte que les outils ne seront pas installés dans la production (sur le serveur). C'est (en théorie) est très pratique pour les scripts qui n'ont de sens que dans le développement, comme les tests, les faux-données-outils, débogueur, etc.

Le chemin à faire est d'ajouter un supplément de require-dev bloc avec les outils dont vous avez besoin en dev:

"require-dev": {
    "codeception/codeception": "1.6.0.3"
}

et puis (théoriquement) charge de ces dépendances via

composer install --dev

Problème & Question:

Compositeur a changé le comportement de install et update de façon spectaculaire en 2013, require-dev-les dépendances sont maintenant installés par défaut (!), n'hésitez pas à créer un compositeur.json avec un require-dev block et d'effectuer un composer install à reproduire.

Comme la plus acceptée de façon à déployer, c'est pousser le compositeur.verrouillage (qui détient votre compositeur de l'installation) et ensuite faire un composer install sur le serveur de production, cela installera aussi le développement des trucs.

Quelle est la bonne façon de déployer cette sans l'installation de l'-dev dépendances ?

Note: je suis en train de créer une situation canonique de Q/r ici de préciser l'étrange Compositeur de déploiement. N'hésitez pas à modifier cette question.

  • Ne sais pas où la générosité est 🙁 je vais commencer une autre approche.
  • Si vous n'avez pas activement les prix, et pas de réponse accepté ou obtient assez de upvotes, personne ne peut le bounty.
  • Désolé, n'a pas regardé mon compte pendant un certain temps. Il y a juste un très court laps de temps pour que. Je vais demander une option sur meta.stackflow.com pour cette question! Désolé...
  • Pas de soucis!
  • Personnellement, je n'aime pas cette approche. Le composer.lock ne doivent jamais être ajoutés à la repo Git, JAMAIS. La bonne approche consiste à utiliser compositeur de mise à jour sur la mise en scène, puis synchroniser le fichier dans la production (si tout fonctionne, bien sûr). Mise en scène doit être la copie exacte d'un environnement de production. composer.lock devrait être une partie de .gitignore.
  • le compositeur.serrure electrique pour être inclus dans un fichier CSV!!! Sinon, comment vous assurez-vous que tout le monde utilise la même version?? Donc, ne JAMAIS exclure compositeur.verrouillage de votre CSV!!!
  • Je pense que tu veux dire VCS (logiciel de contrôle de version), mais sinon, vous avez raison et en ligne avec le projet de recommandations officielles.
  • Xiong Chiamiov: vous avez absolument raison! Il doit être VCS de caurse... 🙂

InformationsquelleAutor Sliq | 2014-02-12