Composer имеет возможность загружать несколько зависимостей только в процессе разработки, поэтому инструменты не будут установлены в производственной среде (на работающем сервере). Это (теоретически) очень удобно для сценариев, которые имеют смысл только при разработке, таких как тесты, fake-data-tools, отладчик и т. Д.
Для этого нужно добавить дополнительный require-dev
блок с инструментами, которые вам нужны в dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
а затем (теоретически) загрузить эти зависимости через
composer install --dev
Проблема и вопрос:
Composer изменил поведение install
и update
в 2013 году резко изменил require-dev
-dependencies (!), Не стесняйтесь создавать composer.json с require-dev
блоком и выполнять composer install
воспроизведение для воспроизведения.
Как наиболее приемлемый способ развертывания, это нажать композитора. Блокировка (которая содержит ваши текущие настройки композитора), а затем выполнить composer install
на рабочем сервере, это также установит материал для разработки.
Как правильно развернуть это, не устанавливая зависимости -dev?
Примечание: я пытаюсь создать канонический Q / A здесь, чтобы прояснить странное развертывание Composer. Не стесняйтесь редактировать этот вопрос.
composer.lock
Никогда не должны быть добавлены в репозиторий Git, НИКОГДА. Правильный подход состоит в том, чтобы использовать обновление композитора при подготовке и затем синхронизировать файл в производство (если все работает, конечно). Постановка должна быть точной копией производственной среды. composer.lock
должен быть частью .gitignore
.