Отличие composer install от composer update

Click here to view original web page at www.kobzarev.com
Обложка к записи Отличие composer install от composer update

В одном из чатов поддержки WordPress прозвучал простой, на первый взгляд, вопрос: «В чем отличие команды composer install от команды composer update«, на который я постараюсь ответить как можно подробнее.

composer update

composer update обновит все ваши зависимости, указанные в файле composer.json.

Предположим, что ваш проект использует следующую конфигурацию:

"require": {"foo/bar": "2.0.*"}

Ранее мы установили версию пакета 2.0.1, запуск composer update приведет к обновлению этого пакета (например, до 2.0.2, если он уже выпущен).

Что делает composer update по шагам:

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

composer install

composer install установит все зависимости, указанные в файле composer.lock, с версиями, указанными в этом же файле, без каких-либо обновлений.

Что делает composer install по шагам:

  • Читает файл composer.lock, если он существует
  • Если файла composer.lock не существует, разрешает зависимости и создает файл composer.lock
  • Устанавливает пакеты, указанные в файле composer.lock.

Когда использовать install, а когда update

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