1

解释:

我无法将 symfony3 更新为 symfony4,无论我如何修复它们,它都会引发各种不同的错误。

我试过的:

我正在关注有关主要更新的官方文档,并确保我有 0 次弃用。

没有弃用

我更新了我composer.json的如下:

{
    "...": "...",

    "require": {
        "symfony/symfony": "^4.0",
    },
    "...": "..."
}

错误:

您的要求无法解决为一组可安装的软件包。

问题 1 - 结论:删除 symfony/assetic-bundle v2.8.2 - 结论:不要安装 symfony/assetic-bundle v2.8.2 - 结论:不要安装 symfony/symfony v4.0.3 - 结论:不要安装 symfony /symfony v4.0.2 - symfony/assetic-bundle 的安装请求(锁定在 v2.8.2,需要为 ^2.8)-> 可由 symfony/assetic-bundle[v2.8.2] 满足。

现在,我继续卸载 symfony/assetic-bundle,但它给出了以下相同的错误:

  • “symfony/swiftmailer 捆绑包”
  • “sensio/framework-extra-bundle”
  • “sensio/分发包”
  • “incenteev/composer-parameter-handler”

然后当没有什么可以删除时(此时非常令人沮丧),它只是说:

问题 1 - 结论:不要安装 symfony/symfony v4.0.3 - 结论:不要安装 symfony/symfony v4.0.2 - 结论:不要安装 symfony/symfony v4.0.1 - sensio/generator-bundle v3.1.7需要 symfony/yaml [...]

  • sensio/generator-bundle 的安装请求(锁定在 v3.1.7,要求为 ^3.0)-> 可满足 sensio/generator-bundle[v3.1.7]。

问题:

如何正确解决错误(如上所示)以及如何正确将 symfony 更新到 4.0?

composer.json 片段:

"require": {
        "php": ">=5.5.9",
        "doctrine/doctrine-bundle": "^1.6",
        "doctrine/orm": "^2.5",
        "incenteev/composer-parameter-handler": "^2.0",
        "sensio/distribution-bundle": "^5.0.19",
        "sensio/framework-extra-bundle": "^3.0.2",
        "symfony/monolog-bundle": "^3.1.0",
        "symfony/polyfill-apcu": "^1.0",
        "symfony/swiftmailer-bundle": "^2.3.10",
        "symfony/symfony": "^4.0",
        "twig/twig": "^1.0||^2.0"
    },
    "require-dev": {
        "sensio/generator-bundle": "3.1.7",
        "symfony/phpunit-bridge": "^3.0"
    },
4

1 回答 1

2

在这个阶段,我创建了 Symfony4 骨架并复制粘贴了我之前项目中的文件。这是一项乏味的任务,因为有些事情确实发生了变化。

以下是可以帮助您升级的基本步骤列表:

  1. 遵循Symfony 文档以摆脱代码中可能存在的任何弃用

  2. 创建一个 Symfony4 骨架

  3. 将您的特定文件复制粘贴到它们各自的位置。
  4. “捆绑包”在某种意义上是不存在的,所以你的目录应该是这样的:src/Controllers等等src/Services
  5. 更新您的namespaces, 默认情况下它们应该是App\Controller,App\Services等。
  6. 数据库连接信息放在.env根目录下的文件中。

随意编辑这篇文章,提供更多有价值的信息。

于 2018-02-14T14:55:10.470 回答