我想将现有的 Laravel 9 项目升级到版本 10。目标是,不仅供应商文件通过 Composer 进行更新。此外,我还想反映项目代码中的更改在供应商文件夹之外。
我按照 Laravel 文档的 升级指南 来升级我的项目。
这里是已更改的文件。
例如我的
app/Console/Kernel.php
应该从 改变
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
到
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*/
protected function commands(): void
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
Laravel 新应用程序框架的更改可以通过其比较工具在 Github 上查看:https://github.com/laravel/laravel/compare/9.x...10.x
(您也可以使用 GUI Git 客户端或 Git 命令行在本地执行此操作。)
这些更改可以变成
.patch
文件,然后您可以将其应用于 您的 应用程序。 Github 再次提供了一个相当简单的方法来做到这一点; https://github.com/laravel/laravel/compare/9.x...10.x.patch.
在本地保存 .patch 文件后,您可以使用
git apply <path-to-patch-file>
将其应用到您的存储库中。在大多数情况下,这应该完全适用。
需要明确的是,这不能替代遵循 https://laravel.com/docs/10.x/upgrade 上的完整升级指南,因为它只会对默认应用程序框架进行必要的调整;它不会以任何方式更新您在 Laravel 中编写的代码。
更新 PHP 相关语法(例如提到的类型提示)的最佳选择可能是具有适当规则的 PHP-CS-Fixer 之类的东西,但您的函数示例将无法使用它,因为这需要定义返回类型的旧方法通过 PHPDoc。
如果您修改了这些文件,则可以从 Laravel 存储库手动复制这些更改并将其调整到您的代码。
要正常升级laravel,只需要更新composer文件即可。
打开composer.json文件 将 PHP 更改为 8 或更高,将 laravel 9 更改为 10,将 spatie/laravel-ignition 更改为 2.0 -> “要求”:{ “php”:“^8.1” “laravel/框架”:“^10.0” }
"require-dev":{
""spatie/laravel-ignition":"^2.0"
}
最后,进入项目根文件夹中的终端并运行composer update命令。
$> laravel_project> 作曲家更新