将 Symfony 2.8 更新为 3.* ,奏鸣曲错误



我想更新我的symfony projet(当前2.8到SF 3.*)

这是我的作曲家.json文件(安魂部分)

"require": {
"php": ">=5.3.9",
"symfony/symfony": "2.8.*",
"doctrine/orm": "^2.4.8",
"doctrine/doctrine-bundle": "~1.4",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~4.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"sonata-project/media-bundle": "^2.3",
"sonata-project/user-bundle": "^2.2",
"sonata-project/formatter-bundle": "~2.3",
"sonata-project/doctrine-orm-admin-bundle": "~2.2",
"sonata-project/admin-bundle": "~2.2",
"sonata-project/timeline-bundle": "^2.2",
"sonata-project/intl-bundle": "^2.2",
"sonata-project/cache-bundle": "^2.2",
"liuggio/excelbundle": "^2.0",
"friendsofsymfony/elastica-bundle": "^3.1",
"liip/imagine-bundle": "^1.4",
"friendsofsymfony/jsrouting-bundle": "^1.6",
"gos/web-socket-bundle": "^1.8"
},

如果我改变

"symfony/symfony": "2.8.*",

"symfony/symfony": "~3.0",

并做

php composer.phar update symfony/symfony --with-dependencies

但是我有这个错误

Problem 1
- sonata-project/media-bundle 2.3.4 requires symfony/symfony ~2.3 -> satisfiable by symfony/symfony

所以我尝试将媒体束更新到 3.10.1,但它在另一个奏鸣曲捆绑包中给了我一个错误..

我应该如何做正确的事情? 我必须一一更新模块吗? 或者用所有修改更新我的作曲家.json?

谢谢

你的奏鸣曲依赖项太旧了,不支持Symfony 3。

示例:https://github.com/sonata-project/SonataMediaBundle/blob/2.x/composer.json

必须升级依赖项才能使其正常工作。

此外,您可以使用composer why-not命令获取更多帮助。

我也几次陷入此错误。错误消息有点抽象。

要解决此错误,您需要更新 composer.json 文件中sonata-project/media-bundle的版本。 因此,您可以将其替换为:"sonata-project/media-bundle": "^3.1",

然后再次运行composer update命令。您可能会遇到与上面相同的错误,但对于另一个包。也更新它。重复此操作,直到作曲家更新命令成功。

那时,如果你幸运的话,你的应用程序将工作。如果没有,则需要更新代码以使用新的包版本代码。请记住,更新软件包的第一个数字(从 2.8 到 3.something)意味着这是一个breaking compatibility更新。

后来的更新:如果你在这里检查sonata-project/media-bundle2.3版本的composer.json文件:https://github.com/sonata-project/SonataMediaBundle/blob/2.3.0/composer.json 你会看到它需要symfony版本:"symfony/symfony": "~2.3"并且你想更新到symfony版本3.something。所以它们是不兼容的。这就是为什么您还需要更新此包等。Composer 将在后台执行此操作,并在包或其依赖项之间不兼容时引发该错误。

希望有帮助。

最新更新