如何正确地将Symfony3.3更新为Symfony4.X?

时间:2018-01-07 01:06:23

标签: symfony symfony4

说明:

我无法将symfony3更新为symfony4,无论我尝试修复它们,它都会抛出各种不同的错误。

我尝试过的事情:

我跟随the official documentation关于重大更新,并确保我有0弃用。

no deprecations

我已更新我的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束[v2.8.2]。

现在,我继续并卸载了symfony / assetic-bundle,但是它给出了同样的错误:

  • " symfony的/ swiftmailer束"
  • " SENSIO /框架-额外束"
  • " SENSIO /分发束"
  • " incenteev /作曲家参数处理程序"

然后当没有什么东西要移除时(此时非常令人沮丧),它只是说:

  

问题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"
    },

1 个答案:

答案 0 :(得分:1)

在这个阶段,我创建了Symfony4骨架并复制粘贴了我之前项目中的文件。这是一项繁琐的工作,因为有些事情会发生变化。

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

  1. 关注Symfony documentation以消除代码中可能存在的任何弃用

  2. 创建Symfony4骨架

  3. 将您的特定文件复制粘贴到各自的位置。
  4. &#34;捆绑&#34;在某种意义上不存在,所以你的目录应该是这样的:struct Bar<>src/Controllers等。
  5. 更新您的src/Services,默认情况下应该是namespacesApp\Controller等。
  6. 数据库连接信息放在根目录的App\Services文件中。
  7. 随时可以使用更有价值的信息编辑此帖子。