Обновление Laravel с 9 до 10. Обновление файлов за пределами папки поставщика

Я хочу обновить свой уже существующий проект 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');
    }
}

2 ответа

Изменения в скелете нового приложения Laravel можно просмотреть на Github с помощью инструмента сравнения: https://github.com/laravel/laravel/compare/9.x...10.x .

(Вы также можете сделать это локально, используя клиент 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 с соответствующими правилами, но ваш пример функций не будет работать с этим, поскольку для этого требуется старый способ определения возвращаемых типов через PHPДокумент.

Копирование этих изменений вручную из репозитория Laravel и корректировка их в вашем коде, если вы изменили эти файлы, — это правильный путь.

Другие вопросы по тегам