【问题标题】:Steps for upgrading Laravel and PHP升级 Laravel 和 PHP 的步骤
【发布时间】:2021-06-20 21:15:52
【问题描述】:

我有一个自 2018 年年中开始运行的 Laravel 应用程序。PHP 目前的版本是 7.2.5,而 Laravel 是 5.6.22。我需要将 PHP 升级到 7.4 或 8.0,并将 Laravel 升级到 6 LTS 或 8。

据我所知,我有两个选择:

  1. 将 PHP 升级到新版本,然后将 Laravel 从 5.6.22 逐步升级到 6 LTS(或 8),边走边测试每个版本;或
  2. 将 PHP 和 Laravel 升级到新版本,并进行一轮测试

我最初的想法是使用方法 1,阅读每个版本的 Laravel 说明,并在我进行时调整我的测试工作。但是在将 PHP 升级到 7.4 后,Laravel 开始在库深处的某个地方失败,所以我猜 V 5.6.22 不适用于 PHP 7.4

是否有解决此问题的标准方法? (请注意,遗憾的是,我没有自动化单元测试)。

【问题讨论】:

  • 到目前为止您尝试过什么?你被困在哪里了?通常,我认为没有最好的方法。尤其是在没有任何测试的情况下,这可能会以任何方式造成很大的痛苦
  • [我的经验] 我曾经有一个项目要升级几个 Laravel 版本并打包依赖项而无需测试。所以我花了一两天的时间编写功能测试,第二天我用它升级到最新的 Laravel 版本。最终删除了我不再需要的包装。我认为我花在编写测试上的时间对于升级对于未来的升级非常宝贵。
  • 我很想知道 Laravel 5.6 如何在 PHP 7.4 上失败

标签: php laravel


【解决方案1】:

这发生在我开始使用 Laravel 时,我从 Laravel 5.3 开始,我的团队不得不将它升级到 5.4、5.5、5.6 和 5.7(然后我离开了哈哈)。

我们最终做的是:

  1. 首先升级PHP,因为它几乎可以肯定它不会引起任何问题。我建议你升级到 8.0
  2. 我们为升级所做的就是进行测试。以前我们没有,所以我们学习了如何测试,我们达到了 90% 的覆盖率,因此我们非常擅长并快速推进。
  3. 完成测试后,您可以开始逐个版本迁移。因为你是5.6,所以可以直接升级到6或8,所以你可以按照指南从5.8 to 67 to 8升级。很容易升级,重要的东西大多和包有关。

这些是我可以与您分享的技巧和个人经验。进行测试是 100% 重要的,否则对您来说会很痛苦,因为您无法 100% 确定是否有东西坏了。

【讨论】:

  • 特别是直接将应用程序从 PHP 7.2 升级到 8 会带来麻烦。关于测试的要点:完全同意,没有测试就不要做任何事情!
  • 将 Laravel 的 PHP 7.2 升级到 8 应该不会有任何问题,因为它是向后兼容的,他们删除了一些旧的东西,但是没有重大变化,它添加了东西而不是删除它们。但是,是的,测试就是救赎,否则你已经下地狱了。
  • php.net/manual/en/migration80.incompatible.php 是一长串不兼容的东西,这些只是 7.4 和 8.0 之间的变化
  • 另外,Laravel 5.6(根据他们的composer.json)与 PHP 8 不兼容。根据 OP,他在升级到 PHP 7.4 时已经遇到问题,所以我怀疑没有“重大变化”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 2018-03-14
相关资源
最近更新 更多