2016-08-01 2 views
2

У меня есть существующий проект Symfony + SonataAdmin, который мы запускаем в течение нескольких лет. Я хотел бы обновить его до SonataAdmin 3.x. 3.0 было бы хорошим началом, а затем, двигаясь до 3.x после того, как мы проверим, что все работает.Модернизация сонаты от 2,3 до 3,0

Однако я не могу получить жизнеспособный набор зависимостей композитора от обновления. Текущие настройки включают в себя:

"sonata-project/admin-bundle": "~2.3", 
    "sonata-project/core-bundle": "~2.3", 
    "sonata-project/doctrine-orm-admin-bundle": "~2.3", 
    "sonata-project/user-bundle": "[email protected]", 
    "sonata-project/datagrid-bundle": "[email protected]", 
    "friendsofsymfony/user-bundle": "~1.3", 

Я попытался изменить первые три до 3.0 *, но я получаю следующее сообщение об ошибке:.

$ composer update --dry-run

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

- sonata-project/user-bundle 2.x-dev requires sonata-project/core-bundle ~2.2 -> satisfiable by sonata-project/core-bundle[2.2.0-2.2.7, 2.3.0-2.3.11, 2.x-dev] but these conflict with your requirements or minimum-stability. 

- sonata-project/user-bundle 2.3.x-dev requires sonata-project/admin-bundle ~2.3|[email protected] -> satisfiable by sonata-project/admin-bundle[2.3.0-2.3.10, 2.x-dev] but these conflict with your requirements or minimum-stability. 

- Installation request for sonata-project/user-bundle [email protected] -> satisfiable by sonata-project/user-bundle[2.x-dev, 2.3.x-dev]. 

Chaging зависимости для пользователя расслоения к:

"sonata-project/user-bundle": "3.0.*@dev", 

или 3.0.*@dev или 3.0.0 или [email protected]:

Просто дает другую ошибку:

$ composer update --dry-run

Loading composer repositories with package information

Updating dependencies (including require-dev)

[Composer\DependencyResolver\SolverProblemsException]

Problem 1 

    - The requested package sonata-project/user-bundle 3.0.* exists as sonata-project/user-bundle[2.3.x-dev, dev-master] but these are rejected by your constraint. 

И, наконец, пытается "sonata-project/user-bundle": "dev-master", дает эту ошибку:

$ composer update --dry-run

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

- sonata-project/user-bundle dev-master requires sonata-project/admin-bundle ^3.1 -> satisfiable by sonata-project/admin-bundle[3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.3.2, 3.4.0, 3.x-dev] but these conflict with your requirements or minimum-stability. 

- sonata-project/user-bundle dev-master requires sonata-project/admin-bundle ^3.1 -> satisfiable by sonata-project/admin-bundle[3.1.0, 3.2.0, 3.3.0, 3.3.1, 3.3.2, 3.4.0, 3.x-dev] but these conflict with your requirements or minimum-stability. 

- Installation request for sonata-project/user-bundle dev-master -> satisfiable by sonata-project/user-bundle[dev-master]. 

Итак ... есть ли версия sonata-project/user-bundle, который совместим с 3.0 * версии. других пакетов сонаты? Packagist, похоже, предполагает, что существует версия 3.0.0 sonata-project/user-bundle, но hasI сделал что-то не так в моем синтаксисе композитора при попытке ссылаться на него?

+0

Зачем использовать '3.0.0'? Это не очень либерально. Попытайтесь использовать '^ 3.0' повсюду, может быть? А затем ограничьте «3.0.0», если вы действительно этого захотите (но поскольку BC-break между «3.0» и «3.1» не существует, это довольно бесполезно IMO). Во всяком случае, вы пропустите некоторые исправления. – greg0ire

+0

OK, используя '^ 3.0' для первых трех и' sonata-project/user-bundle: dev-master' разрешает. Но я еще не запускал его, чтобы узнать, сколько боли связано с обновлением! Я просто хотел получить от 2.3 -> 3.0 сначала, чтобы получить работу с 3.something, а затем обновить до последней версии 3.x. Но, может быть, лучше просто пойти прямо к^3.0. – caponica

+0

Я действительно так думаю. – greg0ire

ответ

1

Правила для достижения своей цели с легкостью:

  • использует стабильные версии и только что
  • не тяготы себя слишком много, вы можете сделать это позже.

Вот отрывок из composer.json шахты:

"sonata-project/admin-bundle": "^3.0", 
    "sonata-project/core-bundle": "^3.0", 
    "sonata-project/doctrine-orm-admin-bundle": "^3.0", 
    "sonata-project/notification-bundle": "^3.0", 
    "sonata-project/user-bundle": "^3.0", 

Простой и красивый.

Смежные вопросы