Композитор має можливість завантажувати кілька залежностей лише під час розробки, тому інструменти не будуть встановлені у виробництві (на реальному сервері). Це (теоретично) дуже зручно для сценаріїв, які мають сенс лише в розробці, як тести, підроблені дані-інструменти, налагоджувач тощо.
Шлях слід додати додатковий require-devблок із необхідними інструментами у розробці:
"require-dev": {
"codeception/codeception": "1.6.0.3"
}
а потім (теоретично) завантажувати ці залежності через
composer install --dev
Проблема та питання:
Композитор змінив поведінку installі updateв 2013 році кардинально змінив , require-dev-залежності тепер встановлені за замовчуванням (!), Сміливо створюйте composer.json з require-devблоком і виконайте composer installвідтворення.
Оскільки найприйнятнішим способом розгортання є підштовхування композитора. замок (що містить поточну настройку композитора), а потім зробіть composer installна виробничому сервері, це також встановить розробку.
Який правильний спосіб розгорнути це без встановлення залежності -dev?
Примітка. Я намагаюся створити тут канонічне запитання для пояснення дивного розгортання композитора. Не соромтесь редагувати це питання.
composer.lockНіколи не повинні бути додані в репозиторій Git, НІКОЛИ. Правильний підхід - використовувати оновлення композитора під час постановки, а потім синхронізувати файл у виробництво (якщо, звичайно, все працює). Постановка повинна бути точною копією виробничого середовища. composer.lockмає бути частиною .gitignore.