Composer a la possibilité de charger plusieurs dépendances uniquement pendant le développement, de sorte que les outils ne seront pas installés en production (sur le serveur live). C'est (en théorie) très pratique pour les scripts qui n'ont de sens qu'en développement, comme les tests, les faux outils de données, le débogueur, etc.
La solution consiste à ajouter un require-devbloc supplémentaire avec les outils dont vous avez besoin en dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
puis (théoriquement) charger ces dépendances via
composer install --dev
Problème et question:
Composer a radicalement changé le comportement de installet updateen 2013, les require-devdépendances sont désormais installées par défaut (!), N'hésitez pas à créer un composer.json avec un require-devbloc et à effectuer une composer installreproduction.
Car le moyen le plus accepté de déployer est de pousser le compositeur. lock (qui contient votre configuration actuelle du compositeur), puis effectuez uncomposer install sur le serveur de production, cela installera également les éléments de développement.
Quelle est la bonne façon de déployer ceci sans installer les dépendances -dev?
Remarque: j'essaie de créer un Q / R canonique ici pour clarifier le déploiement étrange de Composer. N'hésitez pas à modifier cette question.
composer.lockne doit jamais être ajouté au repo Git, JAMAIS. La bonne approche consiste à utiliser la mise à jour du compositeur sur la mise en scène, puis à synchroniser le fichier en production (si tout fonctionne, bien sûr). La préparation doit être la copie exacte d'un environnement de production. composer.lockdevrait faire partie de .gitignore.