Composer ma możliwość załadowania kilku zależności tylko podczas opracowywania, więc narzędzia nie zostaną zainstalowane w środowisku produkcyjnym (na serwerze rzeczywistym). Jest to (w teorii) bardzo przydatne w przypadku skryptów, które mają sens tylko w programowaniu, takich jak testy, narzędzia do fałszywych danych, debugger itp.
Najlepszym sposobem jest dodanie dodatkowego require-dev
bloku z narzędziami potrzebnymi w programie deweloperskim:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
a następnie (teoretycznie) załaduj te zależności za pośrednictwem
composer install --dev
Problem i pytanie:
Composer zmienił zachowanie install
i update
radykalnie w 2013 roku, require-dev
-zależności są teraz instalowane domyślnie (!), Możesz swobodnie utworzyć plik composer.json z require-dev
blokiem i wykonać go composer install
do odtworzenia.
Ponieważ najbardziej akceptowanym sposobem wdrażania jest wypchnięcie kompozytora. lock (który przechowuje twoją obecną konfigurację kompozytora), a następnie wykonaj composer install
na serwerze produkcyjnym, to również zainstaluje programowanie.
Jaki jest prawidłowy sposób wdrożenia tego bez instalowania zależności -dev?
Uwaga: próbuję tutaj utworzyć kanoniczne pytania / odpowiedzi, aby wyjaśnić dziwne wdrożenie kompozytora. Zapraszam do edycji tego pytania.
composer.lock
Nigdy nie powinny być dodawane do repo Git, nigdy. Właściwym podejściem jest użycie aktualizacji kompozytora podczas przemieszczania, a następnie zsynchronizowanie pliku z produkcją (jeśli oczywiście wszystko działa). Inscenizacja musi być dokładną kopią środowiska produkcyjnego. composer.lock
powinien być częścią .gitignore
.