首页 > 解决方案 > 将 laravel 项目从 5.3 升级到 5.8

问题描述

我正在做一个项目,我正在尝试将我当前版本的 php 5.6 升级到 7.3,将 laravel 5.3 升级到 5.8,将背包 0.7 升级到最终版本,然后运行composer update但我得到的只是以下错误:

Problem 1:
    - Conclusion: don't install laravel/framework v5.8.19
    - Conclusion: don't install laravel/framework v5.8.18
    - Conclusion: don't install laravel/framework v5.8.17
    - Conclusion: don't install laravel/framework v5.8.16
    - Conclusion: don't install laravel/framework v5.8.15
    - Conclusion: don't install laravel/framework v5.8.14
    - Conclusion: don't install laravel/framework v5.8.13
    - Conclusion: don't install laravel/framework v5.8.12
    - Conclusion: don't install laravel/framework v5.8.11
    - Conclusion: don't install laravel/framework v5.8.10
    - Conclusion: don't install laravel/framework v5.8.9
    - Conclusion: don't install laravel/framework v5.8.8
    - Conclusion: don't install laravel/framework v5.8.7
    - Conclusion: don't install laravel/framework v5.8.6
    - Conclusion: don't install laravel/framework v5.8.5
    - Conclusion: don't install laravel/framework v5.8.4
    - Conclusion: don't install laravel/framework v5.8.3
    - Conclusion: don't install laravel/framework v5.8.2
    - Conclusion: don't install laravel/framework v5.8.1
    - laravelcollective/html v5.3.1 requires illuminate/view 5.3.* -> satisfiable by laravel/framework[v5.3.31], illuminate/view[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
    - laravelcollective/html v5.3.1 requires illuminate/view 5.3.* -> satisfiable by laravel/framework[v5.3.31], illuminate/view[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
    - Can only install one of: laravel/framework[v5.8.0, v5.3.31].
    - don't install illuminate/view v5.3.0|don't install laravel/framework v5.8.0
    - don't install illuminate/view v5.3.16|don't install laravel/framework v5.8.0
    - don't install illuminate/view v5.3.23|don't install laravel/framework v5.8.0
    - don't install illuminate/view v5.3.4|don't install laravel/framework v5.8.0
    - Installation request for laravel/framework 5.8.* -> satisfiable by laravel/framework[v5.8.0, v5.8.1, v5.8.10, v5.8.11, v5.8.12, v5.8.13, v5.8.14, v5.8.15, v5.8.16, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.3, v5.8.4, v5.8.5, v5.8.6, v5.8.7, v5.8.8, v5.8.9].
    - Installation request for laravelcollective/html 5.3.1 -> satisfiable by laravelcollective/html[v5.3.1].

这是 composer.json 要求

"require": {
        "php": ">=7.3.1",
        "laravel/framework": "5.3.*",
        "laravelcollective/html": "5.3.1",
        "backpack/base": "^0.7.14",
        "backpack/crud": "^3.1",
        "backpack/permissionmanager": "^2.1",
        "backpack/langfilemanager": "^1.0",
        "mikehaertl/phpwkhtmltopdf": "2.2.1",
        "artisaninweb/laravel-soap": "0.3.0.7",

标签: laravel-5.8laravel-backpackphp-7.3

解决方案


升级 Laravel 和/或 Backpack 时,建议不要跳转版本。我从来没有尝试过从 L5.3 直接跳到 5.8,但我不认为这会奏效。

Laravel 和 Backpack 都发布了每个版本的升级指南。这是因为升级过程不仅仅是更改 composer.json 文件中的数字。它还涉及您需要手动执行的一些步骤。否则你的应用程序将无法运行。我知道这很不方便,但这是升级您可以自定义的代码的唯一可能方法。

我的建议:

  1. 升级到 Laravel 5.4 & Backpack 3.2
  2. 然后升级到 Laravel 5.5 & Backpack 3.3
  3. 然后升级到 Laravel 5.6 & Backpack 3.4
  4. 然后升级到 Laravel 5.7 & Backpack 3.5
  5. 然后升级到 Laravel 5.8 & Backpack 3.6

你可以使用Laravel Shift自动化大部分 Laravel 升级。这是一项付费服务​​,可向您的 Github/Gitlab/Bitbucket 存储库发出拉取请求。恐怕你不能自动化 Backpack 升级,但在大多数情况下,步骤会很清晰,变化很小。

希望能帮助到你。


推荐阅读