Задать вопрос
@RMate

Как разрулить конфликт зависимостей composer?

Всем привет!
Имеется проект на Laravel 5.7. Хотел к нему прикрутить omnipay второй версии, т.к. целой кучи интеграций под третью попросту нет. Однако, при установке omnipay 2 получаю ошибку:

spoiler

Your requirements could not be resolved to an installable set of packages.

Problem 1
- omnipay/omnipay v2.0.0 requires omnipay/common ~2.0.0 -> satisfiable by omnipay/common[v2.0.0].
- Installation request for omnipay/omnipay 2 -> satisfiable by omnipay/omnipay[v2.0.0].
- Conclusion: remove symfony/http-foundation v4.4.0
- Conclusion: don't install symfony/http-foundation v4.4.0
- omnipay/common v2.0.0 requires symfony/http-foundation ~2.1 -> satisfiable by symfony/http-foundation[2.1.x-dev, 2.2.x-dev, 2.3.x-dev, 2.4.x-dev, 2.5.x-dev, 2.6.x-dev, 2.7.x-dev, 2.8.x-dev, v2.1.0, v2.1.1, v2.1.10, v2.1.11, v2.1.12, v2.1.13, v2.1.2, v2.1.3, v2.1.4, v2.1.5, v2.1.6, v2.1.7, v2.1.8, v2.1.9, v2.2.0, v2.2.1, v2.2.10, v2.2.11, v2.2.2, v2.2.3, v2.2.4, v2.2.5, v2.2.6, v2.2.7, v2.2.8, v2.2.9, v2.3.0, v2.3.1, v2.3.10, v2.3.11, v2.3.12, v2.3.13, v2.3.14, v2.3.15, v2.3.16, v2.3.17, v2.3.18, v2.3.19, v2.3.2, v2.3.20, v2.3.21, v2.3.22, v2.3.23, v2.3.24, v2.3.25, v2.3.26, v2.3.27, v2.3.28, v2.3.29, v2.3.3, v2.3.30, v2.3.31, v2.3.32, v2.3.33, v2.3.34, v2.3.35, v2.3.36, v2.3.37, v2.3.38, v2.3.39, v2.3.4, v2.3.40, v2.3.41, v2.3.42, v2.3.5, v2.3.6, v2.3.7, v2.3.8, v2.3.9, v2.4.0, v2.4.0-BETA1, v2.4.0-BETA2, v2.4.0-RC1, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.5.0, v2.5.0-BETA1, v2.5.0-BETA2, v2.5.0-RC1, v2.5.1, v2.5.10, v2.5.11, v2.5.12, v2.5.2, v2.5.3, v2.5.4, v2.5.5, v2.5.6, v2.5.7, v2.5.8, v2.5.9, v2.6.0, v2.6.0-BETA1, v2.6.0-BETA2, v2.6.1, v2.6.10, v2.6.11, v2.6.12, v2.6.13, v2.6.2, v2.6.3, v2.6.4, v2.6.5, v2.6.6, v2.6.7, v2.6.8, v2.6.9, v2.7.0, v2.7.0-BETA1, v2.7.0-BETA2, v2.7.1, v2.7.10, v2.7.11, v2.7.12, v2.7.13, v2.7.14, v2.7.15, v2.7.16, v2.7.17, v2.7.18, v2.7.19, v2.7.2, v2.7.20, v2.7.21, v2.7.22, v2.7.23, v2.7.24, v2.7.25, v2.7.26, v2.7.27, v2.7.28, v2.7.29, v2.7.3, v2.7.30, v2.7.31, v2.7.32, v2.7.33, v2.7.34, v2.7.35, v2.7.36, v2.7.37, v2.7.38, v2.7.39, v2.7.4, v2.7.40, v2.7.41, v2.7.42, v2.7.43, v2.7.44, v2.7.45, v2.7.46, v2.7.47, v2.7.48, v2.7.49, v2.7.5, v2.7.50, v2.7.51, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.0-BETA1, v2.8.1, v2.8.10, v2.8.11, v2.8.12, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19, v2.8.2, v2.8.20, v2.8.21, v2.8.22, v2.8.23, v2.8.24, v2.8.25, v2.8.26, v2.8.27, v2.8.28, v2.8.29, v2.8.3, v2.8.30, v2.8.31, v2.8.32, v2.8.33, v2.8.34, v2.8.35, v2.8.36, v2.8.37, v2.8.38, v2.8.39, v2.8.4, v2.8.40, v2.8.41, v2.8.42, v2.8.43, v2.8.44, v2.8.45, v2.8.46, v2.8.47, v2.8.48, v2.8.49, v2.8.5, v2.8.50, v2.8.52, v2.8.6, v2.8.7, v2.8.8, v2.8.9].
- Can only install one of: symfony/http-foundation[2.1.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.2.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.3.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.4.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.5.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.6.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.7.x-dev, v4.4.0].
- Can only install one of: symfony/http-foundation[2.8.x-dev, v4.4.0].
............ уведомление о каждой следующей версии пакета
- Can only install one of: symfony/http-foundation[v2.8.9, v4.4.0].
- Installation request for symfony/http-foundation (locked at v4.4.0) -> satisfiable by symfony/http-foundation[v4.4.0].

Installation failed, reverting ./composer.json to its original content.


Суть конфликта мне вроде-бы предельно понятна, omnipay2 ссылается на symfony/http-foundation ^2, в то время, как laravel уже установил 4-ю версию пакета.

Но мне не понятно, как решать подобный конфликт?
  • Вопрос задан
  • 349 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
Если под 3 версию не хватает адаптеров, то нужно:
  • либо доработать адаптеры под 3-ю версию и внести в клад в опенсорс,
  • либо сделать форк 2 версии для самой библиотеки и для common, адаптировать common (форк) под работу с symfony/http-foundation 4 версии, выложить на Packagist и затянуть к себе уже свой форк


Приходилось как-то пару раз мутыжиться со вторым способом... гемморно, но нужно было
Может так статься, что адаптер форкнуть будет проще
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы