2015-10-10 2 views

ответ

131

обновление композитор

composer update обновит depencencies, как они указаны в composer.json

Например, если требуется этот пакет в качестве зависимости:

"mockery/mockery": "0.9.*", 

и у вас есть на самом деле установлена ​​версия пакета 0.9.1, запуск composer update приведет к обновлению этого пакета (например, до 0.9.2, если он уже был выпущен)

подробно composer update будет:

  • Read composer.json
  • удалить установленные пакеты, которые не более обязательным в composer.json
  • Проверьте наличие последних версий вашего требуемые пакеты
  • Установите последние версии ваших пакетов
  • Обновление composer.lock для хранения установленных пакетов версии

композитор установки

composer install ничего не обновлять; это будет просто установить все зависимости, как указано в composer.lock файле

Подробно:

  • Проверьте composer.lock файл существует (если нет, то запустить composer-update и создать его)
  • Read composer.lock файл
  • Установить пакеты, указанные в файле composer.lock

Когда установить и когда обновлять

  • composer update в основном используется в «стадии разработки», чтобы обновить наши пакеты проекта в соответствии с тем, что мы указали в файле composer.json,

  • composer install является прежде всего используемые в «фазе развертывания» для установки нашего приложения на производственном сервере или в тестовой среде с использованием тех же зависимостей, хранящихся в файле composer.lock, созданных при обновлении композитора.

+2

Вы не описали, что будет, если у нас нет никакого файла блокировки и вызвать композитор установку. Хорошее описание кстати. – user1954544

+0

Важная вещь, которая может вас укусить однажды - файл блокировки не является рекурсивным. Если какой-либо пакет имеет слабо определенные зависимости, и если вам удастся получить чистую копию проекта на чистой машине, он может устанавливать разные версии вложенных зависимостей, которые могут включать в себя новые ошибки или даже нарушение изменений! Особенно актуально для серверов непрерывной интеграции и сборки. Решение - поиск вложенного проблемного пакета и добавление его исправленной хорошей версии в json и файл блокировки. – JustAMartin

+0

и 'globaler update' для компилятора обновляют зависимости в вашем глобальном репозитории в локальной системе (переменная env COMPOSER_HOME') –

43

При запуске компоновщика он ищет файл блокировки и устанавливает все, что содержится в нем, если он не может найти его, он будет читать composer.json, установить его зависимости и создать файл блокировки.

Когда вы запускаете обновление для композитора, он просто читает composer.json, устанавливает зависимости и обновляет файл lockfile (или создает новый файл блокировки).

5

Запуск composer install будет:

  • Проверить, если composer.lock существует.
  • Если нет, то создайте файл composer update.
  • Если существует composer.lock, установите указанные версии из файла блокировки.

Запуск composer update будет:

  • Проверить composer.json.
  • Определите последние версии для установки на основе спецификаций вашей версии.
  • Установите последние версии.
  • Обновление composer.lock для отражения последних установленных версий.

Источник: Composer: It’s All About the Lock File

+0

'composer install' также проверяет, существует ли' composer.json' ... –

Смежные вопросы