Laravel 9 升级到 Laravel 10 的问题

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

我正在尝试将 Laravel 9 升级到 Laravel 10,但收到以下错误

$ composer update
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - illuminate/bus[v8.0.0, ..., v8.11.2] require php ^7.3 -> your php version (8.2.0) does not satisfy that requirement.
    - Root composer.json requires spatie/laravel-webhook-client ^2.8 -> satisfiable by spatie/laravel-webhook-client[2.8.0, v2.x-dev].
    - webklex/laravel-imap 4.1.2 requires laravel/framework >=5.0.0 -> satisfiable by laravel/framework[v10.0.0, ..., 10.x-dev].
    - Only one of these can be installed: illuminate/bus[v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev, v9.0.0-beta.1, ..., 9.x-dev, v10.0.0, ..., 10.x-dev, v11.0.0, ..., 11.x-dev], laravel/framework[v10.0.0, ..., 10.x-dev]. laravel/framework replaces illuminate/bus and thus cannot coexist with it.
    - spatie/laravel-webhook-client[2.8.0, ..., v2.x-dev] require illuminate/bus ^8.0 -> satisfiable by illuminate/bus[v8.0.0, ..., 8.x-dev].
    - Root composer.json requires webklex/laravel-imap ^4.1 -> satisfiable by webklex/laravel-imap[4.1.2].

我已按照 Laravel 官方文档中有关如何将 Laravel 9 升级到 Laravel 10 text 的文档进行操作。我的composer.json 如下所示。

`{
  "name": "laravel/laravel",
  "type": "project",
  "description": "The Laravel Framework.",
  "keywords": [
    "framework",
    "laravel"
  ],
  "license": "MIT",
  "require": {
    "php":"^8.0",
    "abraham/twitteroauth": "^4.0",
    "africastalking/africastalking": "^3.0",
    "andreaselia/laravel-api-to-postman": "^1.13",
    "barryvdh/laravel-dompdf": "^2.0",
    "barryvdh/laravel-snappy": "^1.0",
    "beyondcode/laravel-websockets": "^1.13",
    "bschmitt/laravel-amqp": "^2.1",
    "doctrine/dbal": "^3.3",
    "guzzlehttp/oauth-subscriber": "^0.5",
    "hedii/artisan-log-cleaner": "^4.1",
    "hubspot/api-client": "^11.0",
    "jenssegers/agent": "^2.6",
    "laravel/framework": "^10.0",
    "laravel/sanctum": "^3.2",
    "laravel/tinker": "^2.5",
    "league/flysystem-aws-s3-v3": "^1.0",
    "maatwebsite/excel": "^3.1",
    "pusher/pusher-php-server": "^7.2",
    "spatie/laravel-activitylog": "^3.17",
    "spatie/laravel-query-builder": "^4.0",
    "spatie/laravel-webhook-client": "^2.8",
    "spatie/laravel-webhook-server": "^2.0",
    "staudenmeir/eloquent-has-many-deep": "^1.7",
    "stevebauman/location": "^7.0",
    "webklex/laravel-imap": "^4.1"
  },
  "require-dev": {
    "barryvdh/laravel-ide-helper": "^2.12",
    "facade/ignition": "^2.5",
    "fakerphp/faker": "^1.9.1",
    "laravel/sail": "^1.0.1",
    "mockery/mockery": "^1.4.4",
    "phpunit/phpunit": "^9.5.10"
  },
  "autoload": {
    "files": [
      "app/Helpers/SmsHelper.php",
      "app/Helpers/CriticalNotification/AirtimeDepletedNotification.php"
    ],
    "psr-4": {
      "App\\": "app/",
      "Database\\Factories\\": "database/factories/",
      "Database\\Seeders\\": "database/seeders/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
    }
  },
  "scripts": {
    "post-autoload-dump": [
      "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
      "@php artisan package:discover --ansi"
    ],
    "post-update-cmd": [
      "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
    ],
    "post-root-package-install": [
      "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
      "@php artisan key:generate --ansi"
    ]
  },
  "extra": {
    "laravel": {
      "dont-discover": []
    }
  },
  "config": {
    "optimize-autoloader": true,
    "preferred-install": "dist",
    "sort-packages": true
  },
  "minimum-stability": "dev",
  "prefer-stable": true
}`
php laravel upgrade laravel-9
1个回答
0
投票

您在尝试将 Laravel 升级到版本 10 时遇到了依赖冲突。错误消息表明不同包所需的版本之间存在冲突。

以下是问题的细分:

  1. spatie/laravel-webhook-client 需要照亮/总线版本 8 或 更高。

  2. webklex/laravel-imap 需要 laravel/framework 版本 5 或更高版本。

  3. 由于兼容性限制,您的 Laravel 升级需要照明/总线版本 7 或更低版本。

要解决此问题,您可以尝试以下步骤:

检查兼容性:确保您使用的所有包都与 Laravel 10 兼容。有时包可能无法更新以支持最新的 Laravel 版本,从而导致依赖冲突。

更新依赖项:检查您正在使用的软件包是否有与 Laravel 10 兼容的较新版本。更新您的composer.json 文件以使用这些较新版本。

删除不兼容的包:如果某些包与 Laravel 10 不兼容并且没有替代方案,您可能需要从项目中删除它们或找到兼容的替代品。

联系软件包作者:如果您遇到特定软件包的兼容性问题,您可以联系这些软件包的作者/维护者,询问与 Laravel 10 的兼容性或他们是否有发布更新的计划。

降级 PHP 版本(如有必要):如果 Laravel 10 需要的 PHP 版本低于您当前安装的版本(根据错误消息似乎是这种情况),请考虑降级您的 PHP 版本以匹配 Laravel 10 的要求。

解决依赖关系冲突后,再次运行 Composer update 以安装更新的依赖关系。请务必在升级后彻底测试您的应用程序,以确保一切按预期工作。

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