【发布时间】:2020-12-25 05:44:58
【问题描述】:
我正在尝试将 laravel 从 5.7 更新到 7,但无论我尝试更新什么包,我的作曲家都会失败。
我也尝试从我的项目和 composer-lock.json 中删除供应商文件,但也没有成功。
如何将我当前的 laravel 应用从 5.7 升级到 7
命令行故障
COMPOSER_MEMORY_LIMIT=-1 composer update --with-dependencies
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- barryvdh/laravel-cors v0.11.2 requires illuminate/support 5.5.x|5.6.x|5.7.x -> satisfiable by laravel/framework[v5.7.28, 5.5.x-dev, 5.6.x-dev, 5.7.x-dev], illuminate/support[5.5.x-dev, 5.6.x-dev, 5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9].
- illuminate/support v5.7.9 requires nesbot/carbon ^1.26.3 -> satisfiable by nesbot/carbon[1.26.3, 1.26.4, 1.26.5, 1.26.6, 1.27.0, 1.28.0, 1.29.0, 1.29.1, 1.29.2, 1.30.0, 1.31.0, 1.31.1, 1.32.0, 1.33.0, 1.34.0, 1.34.1, 1.34.2, 1.34.3, 1.34.4, 1.35.0, 1.35.1, 1.36.0, 1.36.1, 1.36.2, 1.37.0, 1.37.1, 1.38.0, 1.38.1, 1.38.2, 1.38.3, 1.38.4, 1.39.0, 1.39.1] but these conflict with your requirements or minimum-stability.
composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.4.6",
"alymosul/laravel-exponent-push-notifications": "^2.1",
"barryvdh/laravel-cors": "^0.11.2",
"beyondcode/laravel-websockets": "^1.1",
"facade/ignition": "^2.0",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
"guzzlehttp/psr7": "1.5",
"illuminate/config": "^7.0",
"illuminate/validation": "^7.27",
"laravel/framework": "^7.24",
"laravel/passport": "^7.5",
"laravel/tinker": "^2.0",
"laravel/ui": "^2.2",
"mollie/laravel-mollie": "2.0",
"nesbot/carbon": "^2.39.1",
"pusher/pusher-php-server": "^4.1",
"tymon/jwt-auth": "1.0.*"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5",
"sven/artisan-view": "^3.1"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": []
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
【问题讨论】:
-
不要直接从 5.7 升级到 7.. 明智地先尝试从 5.7 升级到 6 然后升级到 7.......然后你很容易找到问题......跨度>
-
很可能你使用了多个具有特定 Laravel 兼容性要求的包。例如,在您发布的错误中,
barryvdh/laravel-cors需要 Laravel 5.x 或 6.x,而不是 7。 -
@AkenRoberts 嗯,所以我应该删除那些包?我想最好的确实是慢慢升级?
-
barryvdh/laravel-cors以上版本 1.0.1 支持 Laravel 7,您需要升级您的依赖项并(最重要的是)更新您的代码以使用新版本,因为它们不向后兼容 -
有什么方法可以知道哪些软件包兼容或者我还需要更新哪些软件包?
标签: laravel composer-php upgrade laravel-7