Composer ha la possibilità di caricare diverse dipendenze solo durante lo sviluppo, quindi gli strumenti non verranno installati in produzione (sul server live). Questo è (in teoria) molto utile per gli script che hanno senso solo nello sviluppo, come test, strumenti per dati falsi, debugger, ecc.
La strada da percorrere è aggiungere un require-devblocco aggiuntivo con gli strumenti necessari in dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
e quindi (teoricamente) caricare queste dipendenze tramite
composer install --dev
Problema e domanda:
Il compositore ha cambiato radicalmente il comportamento installe, updatenel 2013, le require-devdipendenze sono ora installate per impostazione predefinita (!), Sentiti libero di creare un composer.json con un require-devblocco e di eseguire una composer installriproduzione.
Come il modo più accettato di distribuire è spingere il compositore. lock (che contiene la tua attuale configurazione del compositore) e quindi esegui uncomposer install sul server di produzione, questo installerà anche le cose di sviluppo.
Qual è il modo corretto di distribuire questo senza installare le dipendenze -dev?
Nota: sto cercando di creare un Q / A canonico qui per chiarire la strana distribuzione di Composer. Sentiti libero di modificare questa domanda.
composer.lockdovrebbe mai essere aggiunto al repository Git, MAI. L'approccio corretto consiste nell'utilizzare l'aggiornamento del compositore per la gestione temporanea e quindi sincronizzare il file in produzione (se tutto funziona, ovviamente). La gestione temporanea deve essere la copia esatta di un ambiente di produzione. composer.lockdovrebbe far parte di .gitignore.