Ich möchte mein bestehendes Laravel 9-Projekt auf Version 10 aktualisieren. Ziel ist es, dass nicht nur Herstellerdateien über Composer aktualisiert werden können. Darüber hinaus möchte ich, dass Änderungen in meinem Projektcode außerhalb des Anbieterordners widergespiegelt werden.
Ich habe mein Projekt gemäß der Upgrade-Anleitung aus der Laravel-Dokumentation aktualisiert.
Dies ist die geänderte Datei.
Zum Beispiel sollte mein app/Console/Kernel.php
in
<?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'); } }
zu
<?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'); } }
自动更新此类“示例”文件可能根本不可能自动进行,因为用户可以在其项目中编辑它们,这就是它们不在供应商中的原因。
更新 PHP 相关语法(例如提到的类型提示)的最佳选择可能是具有适当规则的 PHP-CS-Fixer 之类的东西,但您的函数示例无法使用它,因为这需要旧的定义方式通过 PHPDoc 返回类型。
如果您修改了这些文件,则可以从 Laravel 存储库手动复制这些更改并将其调整为您的代码。
Laravel 新应用程序框架的更改可以通过其比较工具在 Github 上查看:https://github.com/laravel/laravel/compare/9.x...10.x
(您可以使用 GUI Git 客户端或 Git 在本地执行此操作命令行,以及。)
这些更改可以转换为
.patch
文件,然后您可以将其应用于您的应用程序。 Github 再次提供了一个相当简单的方法来做到这一点; https://github.com/laravel/laravel/比较/9.x...10.x.补丁。将 .patch 文件保存在本地后,您可以使用
git apply <path-to-patch-file>
将其应用到您的存储库中。在大多数情况下,这应该完全适用。需要明确的是,这并不能替代遵循 https://laravel.com/docs/10.x/upgrade,因为它只会对默认应用程序框架进行必要的调整;它不会以任何方式更新您在 Laravel 中编写的代码。