Ваши требования не могут быть разрешены для устанавливаемого набора пакетов. используя композитор

У меня есть этот композитор, требующий:

"require": {
    "maximebf/debugbar": "^1.13.1",
    "kriswallsmith/assetic": "^1.2",
    "symfony/translation": "^4.2",
    "symfony/yaml": "^4.2",
    "symfony/config": "^4.2",
    "symfony/routing": "^4.2",
    "symfony/http-foundation": "^4.2",
    "monolog/monolog": "^1.24",
    "leafo/scssphp": "^0.4.0",
    "ins0/google-measurement-php-client": "^2.1.0",
    "ruflin/elastica": "^6.1",
    "phpmailer/phpmailer": "^6.0",
    "mandrill/mandrill": "^1.0",
    "ezyang/htmlpurifier": "^4.10",
    "xamin/handlebars.php": "^0.10.4",
    "paypal/rest-api-sdk-php": "^1.11.0",
    "paypal/merchant-sdk-php": "^3.9.1",
    "zircote/swagger-php": "^3.0",
    "doctrine/cache": "^1.5",
    "symfony/http-kernel": "^4.2",
    "friendsofsymfony/http-cache": "^2.5.0",
    "kint-php/kint": "^3.1",
    "trello/trello": "^0.1.1",
    "giggsey/libphonenumber-for-php": "^8.8",
    "phpoffice/phpspreadsheet": "^1.6",
    "duccio/apns-php": "^1.0",
    "sentry/sentry": "^2.0.0",
    "symfony/console": "^4.2",
    "guzzlehttp/guzzle": "^6.3",
    "dompdf/dompdf": "^0.8.1",
    "mobiledetect/mobiledetectlib": "^2.8",
    "mpdf/mpdf": "^7.0",
    "ext-mysqli": "*"
  },

А у меня ошибка:

Problem 1
    - Conclusion: remove php-http/httplug v2.0.0
    - Installation request for friendsofsymfony/http-cache ^2.5.0 -> satisfiable by friendsofsymfony/http-cache[2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4].
    - sentry/sentry 2.0.0 requires php-http/async-client-implementation ^1.0 -> satisfiable by php-http/guzzle6-adapter[v2.0.1].
    - sentry/sentry 2.0.0 requires php-http/async-client-implementation ^1.0 -> satisfiable by php-http/guzzle6-adapter[v2.0.1].
    - php-http/guzzle6-adapter v2.0.1 requires php-http/httplug ^2.0 -> satisfiable by php-http/httplug[v2.0.0].
    - Conclusion: don't install php-http/httplug v2.0.0
    - Installation request for sentry/sentry ^2.0.0 -> satisfiable by sentry/sentry[2.0.0].

Я не знаю, почему я получаю эту ошибку, зная, что строка, которая генерирует ошибку:

"friendsofsymfony/http-cache": "^2.5.0",

Когда я его удаляю, все работает правильно. Любая идея, почему композитор не хочет устанавливать этот пакет, используя мою текущую конфигурацию?

ИЗМЕНИТЬ:

Предыдущее рабочее состояние моего запроса перед обновлением до более новых версий:

  "require": {
    "maximebf/debugbar": "1.13.1",
    "kriswallsmith/assetic": "1.2.*",
    "symfony/translation": "2.6.11",
    "symfony/yaml": "2.6.11",
    "symfony/config": "2.6",
    "symfony/routing": "2.6",
    "symfony/http-foundation": "2.6",
    "monolog/monolog": "^1.17",
    "leafo/scssphp": "0.4.0",
    "ins0/google-measurement-php-client": "2.1.0",
    "ruflin/elastica": "2.3",
    "phpmailer/phpmailer": "^5.2",
    "mandrill/mandrill": "^1.0",
    "ezyang/htmlpurifier": "4.8.*",
    "xamin/handlebars.php": "^0.10.4",
    "paypal/rest-api-sdk-php": "1.11.0",
    "paypal/merchant-sdk-php": "3.9.1",
    "zircote/swagger-php": "^1.0",
    "doctrine/cache": "^1.5",
    "symfony/http-kernel": "^2.6",
    "friendsofsymfony/http-cache": "^1.4",
    "kint-php/kint": "^2.1",
    "trello/trello": "^0.1.1",
    "giggsey/libphonenumber-for-php": "^8.8",
    "phpoffice/phpexcel": "^1.8",
    "duccio/apns-php": "^1.0",
    "sentry/sentry": "^1.8",
    "symfony/console": "^2.6",
    "guzzle/guzzle": "~3.9",
    "dompdf/dompdf": "^0.8.1",
    "mobiledetect/mobiledetectlib": "^2.8",
    "mpdf/mpdf": "^6.0",
    "ext-mysqli": "*"
  },

person Islam Elshobokshy    schedule 27.02.2019    source источник


Ответы (1)


Если я запускаю ваш код с чистого листа, я получаю другую и более ясную проблему:

  Problem 1
    - Installation request for sentry/sentry ^2.0.0 -> satisfiable by sentry/sentry[2.0.0].
    - sentry/sentry 2.0.0 requires php-http/async-client-implementation ^1.0 -> no matching package found.
  Problem 2
    - friendsofsymfony/http-cache 2.5.4 requires php-http/client-implementation ^1.0.0 -> no matching package found.
    - friendsofsymfony/http-cache 2.5.3 requires php-http/client-implementation ^1.0.0 -> no matching package found.
    - friendsofsymfony/http-cache 2.5.2 requires php-http/client-implementation ^1.0.0 -> no matching package found.
    - friendsofsymfony/http-cache 2.5.1 requires php-http/client-implementation ^1.0.0 -> no matching package found.
    - friendsofsymfony/http-cache 2.5.0 requires php-http/client-implementation ^1.0.0 -> no matching package found.
    - Installation request for friendsofsymfony/http-cache ^2.5.0 -> satisfiable
by friendsofsymfony/http-cache[2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4].

Кажется, вашим зависимостям нужно что-то, что предоставляет php-http/ вещи, которые представляют собой виртуальные пакеты, возможно, предоставляемые разными библиотеками.

Возможно, у вас было что-то, что его предоставляет, и вы удалили его или пытались удалить в этом обновлении? Трудно угадать.

Я бы рекомендовал стереть composer.lock и начать с нуля.

person Rarst    schedule 27.02.2019
comment
Однако удаление composer.lock и запуск с нуля приведет к той же ошибке. - person Islam Elshobokshy; 27.02.2019
comment
Да, и дело в том, что это (отсутствующая зависимость) и есть ошибка, которую нужно исправить. Иногда, когда у вас есть ожидающие удаления, необходимые для удовлетворения файла блокировки, результат оказывается неясным и невозможным для продолжения. Снятие блокировки показывает, какая основная проблема у вас фактически есть. - person Rarst; 27.02.2019
comment
Спасибо! Но это не решает проблему, а создает другую. Не могли бы вы добавить способ исправить проблему, возникшую при удалении composer.lock? - person Islam Elshobokshy; 27.02.2019
comment
Что ж, я не знаю, что делает ваше приложение и какие у него ожидания в отношении соответствующей функциональности, поэтому я не могу сказать вам, какие пакеты вам нужно использовать. Если у вас было ранее рабочее состояние, попробуйте выяснить, был ли удален какой-либо пакет, вызвавший это, и добавьте его обратно. - person Rarst; 27.02.2019
comment
Я отредактировал свой OP, чтобы включить код, который у меня был раньше. Код, который существует сейчас, — это просто обновленная версия кода, который у меня был. - person Islam Elshobokshy; 27.02.2019