【问题标题】:Upgrading Laravel 5.4 to latest version (5.7)将 Laravel 5.4 升级到最新版本 (5.7)
【发布时间】:2019-03-21 19:26:29
【问题描述】:

我正在使用 PHP 版本 5.6.4 开发 Laravel 5.4。 我的目标是使用 PHP 7.1 将我的项目升级到 Laravel 5.7。

现在我的问题是:我必须升级到 5.5 > 5.6 > 5.7 还是可以直接从 5.4 升级到 5.7?

【问题讨论】:

    标签: php laravel laravel-upgrade


    【解决方案1】:

    有一些关于文档的文章。您可以直接升级到 5.7,但请务必从此链接 5.5->5.65.6->5.7 修改关键部分。并先备份当前项目

    【讨论】:

      【解决方案2】:

      最好先升级 5.5,然后再升级 5.6 和 5.7,因为如果您在 5.5 和 5.6 升级指南中看到,有些软件包也需要升级,所以您最好一步一步进行。

      老版本可以看

      【讨论】:

        【解决方案3】:

        在我看来,逐步升级会有所帮助。这有助于查看您的应用程序是否已经兼容所有需要进行的更改。

        如果您直接升级到 5.7 并且由于更改而面临更大的问题,您最快的选择是再次降级到 5.4。

        如果您在第一步升级到 5.5,您可以让您的应用程序兼容 5.5,对其进行彻底测试、部署,然后开始测试升级到 5.6 需要做什么。

        【讨论】:

          【解决方案4】:

          只需在您的 composer.json 文件中将您的 laravel/framework 依赖项更新为 5.7.*。由于您是从 5.4 升级到 5.7,所以您可以轻松运行

          composer update

          如果您在 5.4 应用程序中修改了 Laravel 的一些特征或方法,那么您可以check here 了解更多信息

          【讨论】:

            【解决方案5】:

            只需在composer.json 文件中将您的 laravel/framework 依赖项更新为 5.7.*

            "require": {
                "php": "^7.1.3",
                "fideloper/proxy": "^4.0",
                "laravel/framework": "5.7.*",
                "laravel/tinker": "^1.0"
            },
            

            之后,在命令提示符下运行此命令:composer update

            您将取得成功,您的 Larvael 将更改为5.7 版,更多详情请访问upgrade guide

            【讨论】:

            • 如果我这样做,我会收到此错误Your requirements could not be resolved to an installable set of packages. 我有 PHP 7.1.20
            • @Michael 请分享您的composer.json 文件的代码
            • ....并分享确切的错误日志。最有可能的是,它会告诉你有冲突的包
            【解决方案6】:

            不,你不应该一步一步升级,只有你可以这样做: https://laravel.com/docs/5.7/upgrade

            【讨论】:

            • 老实说,我不明白升级文档。我是否需要更改我的 composer.json 文件中的版本并进行作曲家更新?我需要更改 Laravel 框架的源代码吗?还是只是升级文档页面上的说明性信息?
            • 没关系。你需要去 "composer.json" 并编辑 "laravel/framework": "5.4.*", 到 "laravel/framework": "5.7.*" 来升级 laravel。在你的命令行检查你的php版本之前。其他任务在文档页面中有一步一步的。如果您有任何其他问题,您可以给我发电子邮件,我会帮助你
            • 您能否进一步解释为什么不应该逐步升级?恕我直言,这将有助于解决潜在的错误
            • @HamidNaghipour 请在此处运行所有通信,以便其他人可以使用它。如果您还有问题,请随时提出新问题
            • @NicoHaase 这是关于远程合作,而不是关于问题。好的,我删除了我的 cmets。
            【解决方案7】:

            您可以在 composer.json 文件中将您的 laravel/framework 依赖项更新为 5.7.*。

            1. composer.json 中的变化:

            发件人:

            "require": {
                    "php": ">=7.0.0",
                    "fideloper/proxy": "~3.3",
                    "laravel/framework": "5.4.*",
                    "laravel/tinker": "~1.0"
                },
            

            收件人:

            "require": {
                    "php": ">=7.1.3",
                    "fideloper/proxy": "~4.0",
                    "laravel/framework": "5.6.*",
                    "laravel/tinker": "~1.0"
                },
            

            2。将 app\Http\Middleware\TrustedProxies.php 文件替换为以下内容:

            <?php
            
            namespace App\Http\Middleware;
            
            use Illuminate\Http\Request;
            use Fideloper\Proxy\TrustProxies as Middleware;
            
            class TrustProxies extends Middleware
            {
                /**
                 * The trusted proxies for this application.
                 *
                 * @var array
                 */
                protected $proxies;
            
                /**
                 * The headers that should be used to detect proxies.
                 *
                 * @var string
                 */
                protected $headers = Request::HEADER_X_FORWARDED_ALL;
            }
            

            3.作曲家更新

            composer update
            

            【讨论】:

            • 你能解释一下为什么要替换一些任意文件吗?
            • 那个升级指南毕竟没有提到TrustProxies。那么,你能解释一下吗?
            • 由于 Symfony HttpFoundation 的受信任代理功能的底层更改,必须对应用程序的 App\Http\Middleware\TrustProxies 中间件进行轻微更改。 $headers 属性以前是一个数组,现在是一个位属性,可以接受几个不同的值。例如,要信任所有转发的标头,您可以更新您的 $headers 属性
            • 请将此类信息添加到答案中,而不是评论部分。如果您复制和粘贴信息,请注明出处 - laravel.com/docs/5.6/upgrade 包含您最后的评论逐字逐句
            • 是的,谢谢你..如果你有获取信息的链接,那么你为什么要问我妈妈?
            【解决方案8】:

            用于更新 Laravel 6.x(这意味着 V6 的任何子版本)
            只需运行此命令

            cd [laravel installation directory]
            composer update

            您的 VM 或 PC 上必须安装 composer。

            仅适用于 Linux 用户:

            Composer 目录必须为当前用户所有

            //Check ownership
            ls -la ~/ | grep ".composer"
            
            //If you don't own the directory
            chown -R [user]/[user] ~/.composer
            

            在任何社交媒体上给我发消息@smitpatelx 如果您需要任何帮助或您的用例与上述不同,请发表评论。

            【讨论】:

              猜你喜欢
              • 2020-05-23
              • 2020-01-11
              • 2019-02-06
              • 2012-04-21
              • 2022-01-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多