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

Я пытаюсь обновиться с laravel 5.5 до 5.6. Для этого я использовал руководство по обновлению.

Сначала я попытался обновить laravel/framework до 5.6.* и phpunit/phpunit до ~7.0.

Это приводит к ошибке Your requirements could not be resolved to an installable set of packages.

Я понимаю, что это означает, но журнал ошибок действительно сложно проанализировать, и я уже несколько часов пытаюсь изменить файл composer.json на устанавливаемый набор пакетов.
Мне не удалось это исправить я сам, поэтому я прихожу к вам. Может, некоторым из вас действительно нравится решать эти проблемы ...

Итак, мой нынешний composer.json, во всей красе:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.1",
        "laravel/framework": "5.6.*",
        "jenssegers/rollbar": "^1.4",
        "doctrine/dbal": "~2.3",
        "sensiolabs/security-checker": "^3.0",
        "guzzlehttp/guzzle": "~6.0",
        "mandrill/mandrill": "1.0.*",
        "lcobucci/jwt" : "^3.1",
        "predis/predis": "~1.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~7.0",
        "phpspec/phpspec": "~4.0",
        "laravel/homestead" : "~4.0",
        "symfony/dom-crawler": "3.1.*",
        "symfony/css-selector": "3.1.*",
        "filp/whoops": "~2.0"
    }
}

И текущая ошибка:

➔ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: don't install laravel/framework v5.6.15
    - Conclusion: don't install laravel/framework v5.6.14
    - Conclusion: don't install symfony/process v4.0.7
    - Conclusion: don't install laravel/framework v5.6.13
    - Conclusion: don't install symfony/process v4.0.6
    - Conclusion: don't install symfony/process v4.0.5
    - Conclusion: don't install symfony/process v4.0.4
    - Conclusion: don't install symfony/process v4.0.3
    - Conclusion: don't install symfony/process v4.0.2
    - Installation request for laravel/homestead ~4.0 -> satisfiable by laravel/homestead[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5].
    - Conclusion: don't install symfony/process v4.0.1
    - laravel/framework v5.6.0 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.1 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.10 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.11 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.12 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.2 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.3 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.4 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.5 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.6 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.7 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.8 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - laravel/framework v5.6.9 requires symfony/process ~4.0 -> satisfiable by symfony/process[v4.0.0, v4.0.1, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7].
    - Conclusion: don't install symfony/process v4.0.0
    - Installation request for laravel/framework 5.6.* -> satisfiable by laravel/framework[v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.2, v5.6.3, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9].

Я очень надеюсь, что кто-то сможет понять, что здесь имеется в виду под композитором. Я бы тоже хотел сделать это сам, но похоже, что все другие решения этого же вопроса действительно предназначены только для этого composer.json, а не для общего ответа ..


person Jeff Huijsmans    schedule 06.04.2018    source источник
comment
Из этого руководства: Laravel 5.6 требует PHP 7.1.3 или выше. Посмотрите, поможет ли изменение "php": ">=7.1", на "php": "^7.1.3",   -  person brombeer    schedule 06.04.2018
comment
Попробуйте добавить symfony/process с composer require symfony/process   -  person Frank Groot    schedule 06.04.2018
comment
Также из этого руководства: Все базовые компоненты Symfony, используемые Laravel, были обновлены до серии версий Symfony ~ 4.0. Вероятно, вам следует обновить все компоненты Symfony до 4   -  person brombeer    schedule 06.04.2018
comment
rm -rf ./vendor & composer update если это все еще не удается, вам необходимо обновить PHP до 7.1.14.   -  person Kyslik    schedule 06.04.2018
comment
Пробуем сейчас эти предложения. Спасибо, ребята, мне немного стыдно. Как я этого не увидел ?!   -  person Jeff Huijsmans    schedule 06.04.2018
comment
Я думаю, вы можете добавить "symfony/process": "^4.0" перед "laravel/framework": "5.6.*", в свой require и посмотреть, что произойдет   -  person Edwin    schedule 06.04.2018
comment
Спасибо всем! Теперь у меня есть правильный composer.json. Для будущих людей с головной болью: я обновил php до ^7.1.3, sensiolabs/security-checker до ^4.1, phpspec до ~4.0, laravel/homestead до ~7.3, symfony/dom-crawler и symfony/css-selector до ^4.0.   -  person Jeff Huijsmans    schedule 06.04.2018


Ответы (1)


Для этой ситуации мне пришлось сделать следующее:

  • Я обновил php до ^7.1.3
  • sensiolabs/security-checker to ^4.1
  • phpspec to ~4.0
  • laravel/homestead to ~7.3
  • symfony/dom-crawler и с symfony/css-selector по ^4.0
  • Удалите ссылки на composer optimize, поскольку они теперь удалены
  • Прекратите использовать configureMonologUsing(...) и создайте собственный класс регистратора для Rollbar.

Спасибо за помощь в комментариях!

person Jeff Huijsmans    schedule 06.04.2018