出现错误为什么尝试将 yii2 更新到较新的版本

问题描述 投票:0回答:1

我正在尝试使用 Composer 将 yii2 更新到较新的版本,我刚刚将我的 Composer 更新到最新版本,运行后

composer require "yiisoft/yii2:~2.0.49" --update-with-dependencies
我收到以下错误

Problem 1
    - codeception/module-yii2 is locked to version 1.1.5 and an update of this package was not requested.
    - codeception/module-yii2 1.1.5 requires php >=5.6.0 <=8.1 | ~8.1.0 -> your php version (8.2.3) does not satisfy that requirement.
  Problem 2
    - symfony/browser-kit is locked to version v4.2.4 and an update of this package was not requested.
    - symfony/browser-kit v4.2.4 requires php ^7.1.3 -> your php version (8.2.3) does not satisfy that requirement.
  Problem 3
    - lcobucci/jwt 3.3.3 requires php ^5.6 || ^7.0 -> your php version (8.2.3) does not satisfy that requirement.
    - sizeg/yii2-jwt v2.0.2 requires lcobucci/jwt ~3.3.0 -> satisfiable by lcobucci/jwt[3.3.3].
    - sizeg/yii2-jwt is locked to version v2.0.2 and an update of this package was not requested.

我现在已经挣扎了几个小时,我也尝试运行

composer update
,但我也遇到了错误。我如何更新 codeception/module-yii2?并且还升级我的 yii2 版本?预先感谢任何帮助

php yii2
1个回答
0
投票

问题出在包裹

sizeg/yii2-jwt

最新版本需要

lcobucci/jwt: ~3.3.0
。但即使在 3.4.x 版本中,该软件包也不支持 php 8。

您有 3 个选择:

1。在 php 7.4 上运行您的应用程序

Yii 2.0.49 确实支持 php 7.4,所以 Composer 更新在该 php 版本上应该没问题。

2。您可以在 php 8.2 上运行应用程序时强制 Composer 安装 php 7.4 的软件包

你必须希望一切顺利。 您可以通过在composer.json中设置目标平台来做到这一点,如下所示:

{
  "config": {
    "platform": {
      "php": "7.4.33"
    }
  }
} 

如果您这样做,作曲家将忽略当前的 php 版本,而是安装软件包,就像在指定的 php 版本上运行一样。 这可能是个坏主意,特别是如果您的生产环境也运行 php 8.2。如果您的生产环境运行 php 7.4 可能没问题,但您不想在开发环境中安装旧的 php。

3.您可以放弃

sizeg/yii2-jwt
并直接使用较新版本的
lcobucci/jwt
在这种情况下,您只需将作曲家输出中提到的其他两个包(
codeception/module-yii2
symfony/browser-kit
)更新到支持 php 8.2 的版本。用最新的
composer update
要求替换过时的
sizeg/yii2-jwt
要求后运行
lcobucci/jwt
应该负责更新它们。

注意

如果您想检查将要发生的情况,您可以随时将

--dry-run
选项与
composer
命令一起使用。使用该选项将使 Composer 输出将要完成的更改,而无需实际对已安装的软件包进行任何更改。

© www.soinside.com 2019 - 2024. All rights reserved.