Вопрос

Я пытаюсь понять эту часть: http://getcomposer.org/doc/02-libraries.md#lock-file

этот файл блокировки не окажет никакого влияния на другие проекты, которые от него зависят.Это влияет только на основной проект"

Означает ли это, что если проект P зависит от библиотеки A, а библиотека A зависит от библиотеки B v1.3, проект P не будет заботиться о версии библиотеки B и, возможно, вместо этого установит B 1.4?Какой тогда смысл?

Или это означает обратное, как и следовало ожидать от менеджера зависимостей?

Это было полезно?

Решение

Зависимости Composer определены в composer.json.При первом запуске установки композитора или при запуске обновления композитора файл блокировки называется composer.lock будет создан.

Цитируемая документация относится только к файлу блокировки.Если ваш проект P зависит от библиотеки A, а A зависит от B v1.3.***, то если A содержит файл блокировки, в котором говорится, что кто-то запустил «обновление композитора», в результате чего была установлена ​​B v1.3.2, то установка A в ваш проект P все равно может установить 1.3.3, так как composer.json (нет .lock!) определил зависимость от версии 1.3.*.

Файлы блокировки всегда содержат точные номера версий и полезны для передачи версии, которую вы тестировали, коллегам или при публикации приложения.Для библиотек информация о зависимостях в composer.json это все, что имеет значение.

Другие советы

composer.lock записывает точные версии, которые установлены.Чтобы вы были в одних версиях со своими коллегами.

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

  • Проверить composer.lock файл
  • Если нет, создайте автоматически composer.lock файл (используя composer update)
  • Установите указанные версии, записанные в файле composer.lock файл

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

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

Итак, простой контрольный список.

Если вы хотите, чтобы все коллеги использовали те же версии, что и вы...

  • Совершите свой composer.lock в GIT (или имеющийся у вас виртуальный компьютер)
  • Попросите других получить эту версию composer.lock файл
  • Всегда используйте composer install чтобы получить правильные зависимости

Если вы хотите обновить системные зависимости до новых версий

  • Проверьте файл композитора.json на наличие спецификаций версии.
  • Сделайте composer update
  • Это изменит composer.lock файл с новейшими версиями
  • Зафиксируйте это в GIT (или vcs)
  • Попросите других получить это и composer install

Дальше будет очень хорошее чтение
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

Наслаждайтесь силой composer.lock файл!

Точка блокировки файла - записать точные версии, которые установлены, чтобы они могли быть восстановлены.Это означает, что если у вас есть спецификация версий 1. *, и ваш сотрудник работает composer update, который устанавливает 1.2.4, а затем комбинирует файл Composer.lock, когда вы также получите 1.2.4, даже если 1.3.0 был выпущен.Это гарантирует, что все работают над проектом, имеет той же той той той той той точной версией. Чем больше здесь Composer: это все о файле блокировки

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top