更新symfony 2.8到3. *,奏鸣曲错误

时间:2018-01-30 14:54:32

标签: php symfony sonata-admin symfony-sonata sonata

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

这是我的composer.json文件(requiere part)

"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

所以我尝试将media-bundle更新为3.10.1,但它在另一个奏鸣曲包中给了我一个错误..

我该怎样做对吗? 我必须逐个更新模块? 或者更新我的composer.json并进行所有修改?

感谢

2 个答案:

答案 0 :(得分:0)

您的奏鸣曲依赖性太旧,不支持Symfony 3.

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

您必须升级依赖项才能使其正常运行。

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

答案 1 :(得分:0)

我也被困在这个错误中几次。错误消息有点抽象。

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

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

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

稍后更新:如果您在此处检查sonata-project/media-bundle版本2.3的composer.json文件:https://github.com/sonata-project/SonataMediaBundle/blob/2.3.0/composer.json您将看到它需要symfony版本:"symfony/symfony": "~2.3"并且您想要更新到symfony版本3.something。所以他们是不相容的。这就是为什么你还需要更新这个包等等。 Composer将在幕后执行此操作,并在您的包或它们之间的兼容性不兼容时抛出该错误。

希望有所帮助。