我有一个关于Laravel应用程序框架更新的问题。
通常我运行composer update
命令来更新其所有依赖项。对于 laravel 框架,使用包 laravel/framework。
但是他们在这个包中做了一些更改,这需要您在核心应用程序(而不是作曲家(中进行更改。核心应用是包 laravel/laravel。
例如,在此提交中,他们创建了一个名为confirmPassword()
的函数,该函数引用了包laravel/laravel
中ConfirmPasswordController.php
的文件。 但是我的应用程序上不存在此文件,因为我的应用程序不是最新的。
我的问题
如何使我的核心应用程序保持最新?
错误
请参阅此处更新依赖项但不更新应用程序的典型示例。
首先...这不是一个简单的问题,IMO有很多可能的情况......取决于你开发的代码、你使用的包、你想使用的版本等等......
无论如何,这就是我在这种情况下会做的:
例如,假设我想从版本 X 升级到版本 Z,其中 Z 是 X 之前的两个主要/次要版本
步骤 1
按照后续步骤进行一次一个主要/次要实现。有一次我尝试将应用程序从 Laravel 5.4 升级到 5.6,但它完全坏了。所以我决定升级到 5.5 并测试一切正常,以防万一在该版本中阻止。幸运的是,当我从 5.5 升级到 5.6(代码修复后(时,我已经设法使一切正常工作。
步骤 2
升级核心框架和插件,检查升级和ofc期间的错误,检查官方文档是否存在任何类型的兼容性问题
步骤 3
Laravel有自己的升级指南,应该逐步遵循。只需遵循该指南即可解决大量错误。可能有一些插件不提供它,但通常问题与新功能有关......很难将一种方法、类或特征从一个版本完全改变到另一个版本。
步骤 4
此步骤可以省略,但从您提供的示例来看,添加它可能会更好。当有需要特定类或特征或其他任何功能的新功能时,检查错误是否由于文件丢失(这是"样板文件的一部分"(或具有不同性质而引发的最简单方法是创建一个具有该特定版本的空项目并与"默认"文件进行比较。
例如,如果您没有对LoginController
进行任何更改,则检查新版本是否有任何类型的更新可能是解决方案。
您可以按照要从/升级到的版本(例如此版本(的升级指南手动执行此操作。
或者, Laravel Shift 是一个付费但相当便宜的工具,会自动为您完成。由于它正在对您的项目进行更改,因此您应该仔细检查它所做的一切。