Композитор имеет возможность загружать несколько зависимостей только при разработке, поэтому инструменты не будут установлены в процессе производства (на реальном сервере). Это (теоретически) очень удобно для скриптов, которые имеют смысл только в разработке, таких как тесты, поддельные инструменты данных, отладчик и т.д.
Для этого нужно добавить дополнительный блок require-dev
с инструментами, которые вам нужны в dev:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
а затем (теоретически) загружать эти зависимости через
composer install --dev
Проблема и вопрос:
Composer значительно изменил поведение install
и update
в 2013 году, require-dev
-блокировки теперь установлены по умолчанию (!), не стесняйтесь создавать композитор .json с блоком require-dev
и выполнять a composer install
для воспроизведения.
Как наиболее распространенный способ развертывания - нажать на композитор. заблокировать (который содержит текущую настройку композитора), а затем сделать composer install
на рабочем сервере, это также установит разработку вещи.
Каков правильный способ развертывания без установки зависимостей -dev?
Примечание. Я пытаюсь создать канонический Q/A здесь, чтобы прояснить странное развертывание Composer. Не стесняйтесь редактировать этот вопрос.