@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-ю версию пакета.

Но мне не понятно, как решать подобный конфликт?
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Если под 3 версию не хватает адаптеров, то нужно:
  • либо доработать адаптеры под 3-ю версию и внести в клад в опенсорс,
  • либо сделать форк 2 версии для самой библиотеки и для common, адаптировать common (форк) под работу с symfony/http-foundation 4 версии, выложить на Packagist и затянуть к себе уже свой форк


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

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

Войти через центр авторизации
Похожие вопросы