【问题标题】:Composer unable to resolve sylius/settings-bundleComposer 无法解析 sylius/settings-bundle
【发布时间】:2014-05-15 14:03:21
【问题描述】:

我无法正确解析 Sylius 设置包。我的应用程序是 Symfony 标准应用程序。根据Symfony 2.4.4的默认json,要求是doctrine/doctrine-bundle~1.2

我当前的 json: https://gist.github.com/Rvanlaak/f627a73a8d431600f8ba

解决 sylius/settings-bundle ~0.9 时出现以下错误:

- Installation request for doctrine/doctrine-bundle == 1.2.0.0 -> satisfiable by doctrine/doctrine-bundle[v1.2.0].
- Conclusion: don't install doctrine/doctrine-bundle 1.3.x-dev
- sylius/settings-bundle v0.9.0 requires sylius/resource-bundle 0.9.*@dev -> satisfiable by sylius/resource-bundle[v0.9.0].
- sylius/settings-bundle 0.10.x-dev requires sylius/resource-bundle 0.10.*@dev -> satisfiable by sylius/resource-bundle[0.10.x-dev].
- sylius/resource-bundle v0.9.0 requires doctrine/doctrine-bundle ~1.3@dev -> satisfiable by doctrine/doctrine-bundle[1.3.x-dev, v1.3.0-beta1].
- sylius/resource-bundle 0.10.x-dev requires doctrine/doctrine-bundle ~1.3@dev -> satisfiable by doctrine/doctrine-bundle[1.3.x-dev, v1.3.0-beta1].
- Conclusion: don't install doctrine/doctrine-bundle v1.3.0-beta1
- Installation request for sylius/settings-bundle ~0.9 -> satisfiable by sylius/settings-bundle[0.10.x-dev, v0.9.0].

将我的学说/学说捆绑更改为 ~1.3@dev 或 1.2.0 会出现错误:

- The requested package doctrine/doctrine-bundle == 1.2.0.0 could not be found.

therafter require sylius/settings-bundle dev-master 给出错误:

- Can only install one of: doctrine/doctrine-bundle[1.3.x-dev, v1.2.0].
- Can only install one of: doctrine/doctrine-bundle[v1.2.0, 1.3.x-dev].
- sylius/resource-bundle 0.10.x-dev requires doctrine/doctrine-bundle ~1.3@dev -> satisfiable by doctrine/doctrine-bundle[1.3.x-dev].
- sylius/settings-bundle dev-master requires sylius/resource-bundle 0.10.*@dev -> satisfiable by sylius/resource-bundle[0.10.x-dev].
- Installation request for sylius/settings-bundle dev-master -> satisfiable by sylius/settings-bundle[dev-master].
- Installation request for doctrine/doctrine-bundle v1.2.0 -> satisfiable by doctrine/doctrine-bundle[v1.2.0].

所以在我看来,依赖项似乎相互矛盾。 Symfony 标准版无法解析 sylius/settings-bundle 吗?

编辑

删除以下捆绑包后,composer 实际解析正确

    "lexik/form-filter-bundle" : "~2.0",
    "knplabs/knp-paginator-bundle" : "~2.3",
    "liip/imagine-bundle" : "<1.0.x-dev",
    "raulfraile/ladybug-bundle" : "~1.0",
    "simplethings/entity-audit-bundle" : "~0.5",
    "knplabs/knp-snappy-bundle" : "~1.1",
    "fpn/tag-bundle": "~0.9"

【问题讨论】:

    标签: symfony doctrine-orm composer-php sylius


    【解决方案1】:

    如今,Sylius 依赖项完全是一团糟(它是一个 pre-alpha 版本)。目前没有好的解决方案,但是如果你使用

    "minimum-stability": "dev",
    "prefer-stable": true,
    

    在您的composer.json 中,您可能会得到您所期望的。

    安装 Doctrine 1.3.0@dev,与 Symfony 2.4 不兼容。所以 Doctrine 代码生成器 (app/console doctrine:...) 会崩溃,但 Sylius 会起作用。

    正如我所说,目前还没有最佳解决方案,也许是 Symfony 2.5

    【讨论】:

    • 我确实已经使用了您提到的作曲家设置,但这并没有解决问题。删除我所有的自定义包确实解决了设置包,所以问题出在其中之一(请参阅我的编辑)
    • 所以我认为您发布的其中一个捆绑包需要 Doctrine 1.2.0.0 并且它与 Sylius 依赖项 (1.3) 冲突。我看不到一个简单的解决方案...
    • 在我的第一次尝试中,composer 确实能够解决,但是在安装了所有供应商包之后,composer 无法完成默认的 symfony post-install-cmd 脚本,并出现错误:PHP 致命错误:Class 'Doctrine \ORM\Tools\Console\Command\ClearCache\QueryRegionCommand' 在第 29 行的 /home/scribbr/sites/scribbr/vendor/doctrine/doctrine-bundle/Doctrine/Bundle/DoctrineBundle/Command/Proxy/QueryRegionCacheDoctrineCommand.php 中找不到
    【解决方案2】:

    将所有 Sylius 捆绑包设置为 0.9 版。而且你们没有冲突

    【讨论】:

    • 已经在 sylius/settings-bundlesylius/resource-bundle 的 v0.9 上。 Symfony 标准仍然过于依赖doctrine/doctrine-bridge v1.2
    猜你喜欢
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2015-04-07
    • 1970-01-01
    • 2014-12-28
    • 2017-10-29
    • 2016-01-30
    相关资源
    最近更新 更多