将 laravel 版本 5 升级到最新版本 9 的正确步骤是什么

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

我有一个在 Laravel 5.3 中开发的旧项目,我想将该项目升级到 Laravel v9。升级步骤是什么?

到目前为止我在互联网上看到的以及据我所知:

Upgrade to each higher version step by step e.g 5.3 to 5.4 ... 6 to 7 to 8 to 9

我在我的 Mac 上运行 php 8。目前,我的代码未运行,因为我的

php 5.6
正在使用
Laravel 5.3
中已弃用的方法。

如何正确升级?

我的composer.json文件是

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.3.*",
        "appzcoder/crud-generator": "^2.0",
        "laravelcollective/html": "5.3.*",
        "doctrine/dbal": "^2.5",
        "maatwebsite/excel": "~2.1.0",
        "predis/predis": "~1.0",
        "guzzlehttp/guzzle": "~4.0",
        "laravel/scout" : "^2.0",
        "algolia/algoliasearch-client-php": "^1.17",
        "fx3costa/laravelchartjs": "^2.2",
        "gloudemans/notify": "^1.0",
        "pda/pheanstalk": "~3.1"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.0",
        "symfony/css-selector": "3.1.*",
        "symfony/dom-crawler": "3.1.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "allow-plugins": {
            "kylekatarnls/update-helper": true
        }
    }
}

laravel laravel-5 laravel-9 laravel-upgrade
2个回答
2
投票

最新的依赖项可以在

https://github.com/laravel/laravel
composer.json 中找到。

还有很多事情要做:

  • 遍历上面的存储库并检查所有文件是否与您自己的项目发生更改。通常它们包含向后兼容的更改(例如
    config/xxx.php
    文件中的新键),但有时您需要更改某些函数定义,因为名称、参数或接口已更改。
  • (可选)更新 css/js 构建过程,因为它已经修改了很多次(我相信现在默认的构建工具是“Vite”;旧的实现仍然使用“Laravel Mix”)。
  • 浏览升级指南https://laravel.com/docs/9.x/upgrade。您可以从所有
    high
    影响更改开始解决大部分问题。如果您对框架有足够的了解,您可能只需更新依赖项(跳过所有升级指南),分析异常跟踪并从那里开始工作。
  • 测试网站的每个功能(Laravel 5.3 是 2016 年的版本,因此修复所有错误可能会产生相当多的技术债务)。
  • 希望您编写了一些测试来自动化一些测试过程:)

请注意,此存储库是 Laravel 项目的蓝图。实际的框架位于https://github.com/laravel/framework(它是可以在上面的

composer.json
中找到的依赖项)。

遗憾的是,没有明确的答案来完成这一切。如果您想慢慢地进行,但肯定可以遍历每个升级指南(并在其间进行测试),但这可能需要相当长的时间。


0
投票
  • 当我从6升级到7时,我遇到了很多软件包问题。所以我卸载了那些导致问题的软件包,然后运行
    composer update
    。成功升级后,我再次安装了这些软件包。通过这样做,作曲家安装了包本身的兼容版本。
  • 或者我搜索每个包并找到与我的 PHP 版本兼容的版本,手动更改
    composer.json
    中的版本,然后运行
    composer update
© www.soinside.com 2019 - 2024. All rights reserved.