Недавно обновил
Первое, что приходит в голову, захардкодить в
Другой вариант — переписать ограничение в
Я предпочитаю добавлять проблемные версии в секцию conflict. Так я могу свободно менять глобальный констрейнт в
vendor/package
до 3.18.1
, а там баг. Понятное дело, сразу создал тикет, но как быть в проекте, пока он не закрыт?Первое, что приходит в голову, захардкодить в
require
версию 3.18.0
. Это самый плохой вариант, потому что через какое-то время выйдет новая версия, там все пофиксят, добавят фич, а я так и буду сидеть на 3.18.0
даже после composer update
. Это ещё и небезопасно, ведь так можно пропустить security patch. Это как нарушить open/closed — стандартное обновление не работает, а чтобы обновить нужно руками править composer.json.Другой вариант — переписать ограничение в
require
на ^3.18, !=3.18.1
, но, на мой взгляд, такую запись будет труднее воспринимать визуально. Кроме того, правило исключения в этой секции второстепенно.Я предпочитаю добавлять проблемные версии в секцию conflict. Так я могу свободно менять глобальный констрейнт в
require
/ require-dev
и при необходимости точечно подправлять его в conflict
.{
"name": "vudaltsov/phpyh",
"require": {
"vendor/package": "^3.18"
},
"conflict": {
"vendor/package": "3.18.1"
}
}