기존 Laravel 9 프로젝트를 버전 10으로 업그레이드하고 싶습니다. 목표는 Composer를 통해 공급업체 파일만 업데이트할 수 있는 것이 아닙니다. 또한 내 프로젝트 코드의 변경 사항이 vendor 폴더 외부에 반영되기를 원합니다.
Laravel 문서의 업그레이드 가이드에 따라 프로젝트를 업그레이드했습니다.
변경된 파일입니다.
예를 들어 내 app/Console/Kernel.php
를
to
<?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 관련 구문(예: 언급된 유형 힌트)을 업데이트하는 가장 좋은 옵션은 아마도 적절한 규칙을 갖춘 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/compare/9.x...10.x.patch)..patch 파일을 로컬에 저장한 후
git apply <path-to-patch-file>
를 사용하여 저장소에 적용할 수 있습니다. 대부분의 경우 이는 완벽하게 작동합니다.분명히 말하면 이는 https://laravel.com/docs/10.x/upgrade을 대체하는 것이 아닙니다. 기본 애플리케이션 프레임워크에 필요한 조정만 수행하기 때문입니다. 방법 Laravel에서 작성한 코드를 업데이트하세요.