【问题标题】:Upgrade Symfony from 3.3.2 to 3.4 / Twig incompatibility将 Symfony 从 3.3.2 升级到 3.4 / Twig 不兼容
【发布时间】:2019-03-15 11:56:30
【问题描述】:

我不知道我是否遗漏了一些明显的东西。所以,我正在尝试将 Symfony 从 3.3.2 更新到 3.4。我用

检查了问题
php composer.phar update symfony/symfony --with-dependencies

我收到以下反馈:

Problem 1
- Conclusion: don't install twig/twig v2.5.0
- Conclusion: don't install twig/twig v2.4.8
- Conclusion: don't install twig/twig v2.4.7
- Conclusion: don't install twig/twig v2.4.6
- Conclusion: don't install twig/twig v2.4.5
- Conclusion: don't install twig/twig v2.4.4
- Conclusion: don't install twig/twig v1.35.4
- Conclusion: don't install twig/twig v1.35.3
- Conclusion: don't install twig/twig v1.35.2
- Installation request for twig/twig (locked at v1.34.2, required as ^1.0||^2.0) -> satisfiable by twig/twig[v1.34.2].
- Conclusion: don't install twig/twig v1.35.1
- symfony/symfony v3.4.0 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.1 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.10 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.11 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.12 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.13 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.14 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.15 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.16 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.17 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.2 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.3 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.4 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.5 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.6 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.7 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.8 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- symfony/symfony v3.4.9 requires twig/twig ^1.35|^2.4.4 -> satisfiable by twig/twig[v1.35.0, v1.35.1, v1.35.2, v1.35.3, v1.35.4, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.5.0].
- Conclusion: don't install twig/twig v1.35.0
- Installation request for symfony/symfony 3.4.* -> satisfiable by symfony/symfony[v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.2, v3.4.3, v3.4.4, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9]

我不明白的是我必须安装新版本的 twig 但同时我不应该安装这一事实之间的矛盾。我检查了 Symfony 的文档,但一无所获。无论如何,我尝试使用各种版本的树枝进行更新,但没有成功。 我仍然可以遵循这个解决方案,但我担心我会弄乱我的代码。

How to properly update Symfony3.3 to Symfony4.X?

编辑 1

我在另一个论坛上看到了一个解决方案。我试过了,所以我删除了 composer.lock 和 vendor 目录。现在重新下载了软件包,但在此过程中我收到以下错误:

[RuntimeException]                                                           
An error occurred when executing the "'cache:clear --no-warmup'" command:  
In ParameterBag.php line 102:
You have requested a non-existent parameter "mailer_port". Did you mean this: "mailer_host"?`

编辑 2

老作曲家

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "~2.1.2",
    "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": "3.3.2",
    "twig/twig": "^1.0||^2.0"
},
"require-dev": {
    "doctrine/doctrine-fixtures-bundle": "^3.0",
    "sensio/generator-bundle": "^3.0",
    "symfony/phpunit-bridge": "^4.1"

新作曲家

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "~2.1.2",
    "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": "~3.4",
    "twig/twig": "~1.35|~2.44"
},
"require-dev": {
    "doctrine/doctrine-fixtures-bundle": "^3.0",
    "sensio/generator-bundle": "^3.0",
    "symfony/phpunit-bridge": "3.3.2"

有人知道应该怎么做吗?

【问题讨论】:

  • symfony/symfony v3.4.0 requires twig/twig ^1.35|^2.4.4 -> 你有 twig 1.35 或 2.4.4 及更高版本吗?看起来你仍然以 Symfony 3 代码为目标......也许更新你的 composer.json 文件以反映新的变化
  • 我目前安装了 twig 1.35.4。如果我还是用 php composer.phar update 进行更新,它会给我帖子中的 EDIT1 错误。
  • 但是您是否尝试过手动更新 composer json?
  • 如果通过手动更改您的意思是修改 composer.json 中的 require 对象,我这样做是为了适应 composer 的先前请求,直到我陷入此循环。我在帖子中上传了我的新旧作曲家。

标签: symfony twig composer-php


【解决方案1】:

尝试回写"twig/twig": "^1.0||^2.0",然后将"sensio/framework-extra-bundle": "^3.0.2" 更改为"sensio/framework-extra-bundle": "^5.0.0",这是我在您的composer.json 和新Symfony 3.4.16 项目的composer.json 之间看到的唯一区别。

【讨论】:

  • 然后我得到以下关于树枝的错误。 The requested package sensio/framework-extra-bundle (installed at v3.0.26, required as ^5.0.0) is satisfiable by sensio/framework-extra-bundle[v3.0.26] but these conflict with your requirements or minimum-stability。是否有可能因为我将整个网站文件夹复制到另一台也运行 LAMP 的计算机来尝试更新而不会弄乱原始文件而丢失了某些东西?
  • 谢谢大家的帮助!我没有找到答案。相反,我安装了一个新的 Symfony 3.4 并将我的项目复制到其中。我不得不做一些改变(只是用树枝,这是更新的问题),但它现在可以工作了。无论如何,如果有人有想法,我仍然有兴趣知道错误是什么。
  • 很抱歉没有回答您的最后一个问题...很高兴您能成功!
猜你喜欢
  • 2018-10-17
  • 2022-01-10
  • 2023-02-25
  • 2020-10-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多