Я хочу обновить свой уже существующий проект 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');
}
}
🤔 А знаете ли вы, что...
PHP широко используется для разработки систем управления контентом, таких как WordPress и Joomla.
Автоматическое обновление файлов «примеров» такого типа может быть вообще невозможно автоматически, поскольку они доступны для редактирования пользователями в своих проектах, поэтому они не находятся в поставщике.
Лучше всего для обновления синтаксиса, связанного с PHP, такого как упомянутые подсказки типа, может быть что-то вроде PHP-CS-Fixer с соответствующими правилами, но ваш пример функций не будет работать с этим, поскольку для этого требуется старый способ определения возвращаемых типов через PHPДокумент.
Копирование этих изменений вручную из репозитория Laravel и корректировка их в вашем коде, если вы изменили эти файлы, — это правильный путь.
Изменения в скелете нового приложения 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>
. В большинстве случаев это должно применяться чисто.
This is, to be clear, not a replacement for following the full upgrade guide at https://laravel.com/docs/10.x/upgrade, as it will only make the tweaks necessary for the default app skeleton; it will not update your own code you wrote in Laravel in any way.