Laravel 10: Стоит ли обновлять?
Мажорные релизы Laravel с годами становятся всё меньше и меньше.
Но в Laravel 10 много изменения и я писал о них в статье Laravel 10: Дата выхода и новые возможности.
Laravel 9 всё ещё поддерживается и у нас есть:
- Исправление багов до 8 Августа 2023 года
- Исправление багов связанных с безопасностью до 6 Февраля 2024 года
Теперь когда вы об этом знаете, окупаемость инвестиций по-прежнему того стоит?
Обновлять до Laravel 10 имеет смысл, если:
- Проект всё ещё находится в стадии активной разработки.
- Вам нужен пакет, который поддерживает только Laravel 10.
- Ваш проект хорошо покрыт тестами и переход будет безболезненным.
Не имеет смысла переходить на Laravel 10, если:
- В последнее время для проекта не было написано ни строчки кода.
- Проект находится в стабильном состоянии. Обновление ради обновления — не лучший способ вложить своё время и энергию.
- Ваш проект находится в шатком состоянии из-за отсутствия тестов.
Если вы решили обновить проект после прочтения, то сделайте это! Наверное, это правильное решение.
Но если вы придерживаетесь осторожного подхода, воспользуйтесь двухлетней поддержкой, которая есть у Laravel 9, для подготовки к обновлению.
Как обновить Laravel 9 на Laravel 10
Убедитесь, что сторонние пакеты Composer поддерживают Laravel 10
Поддерживаются ли сторонние пакеты (использующие библиотеки Laravel), используемые в вашем приложении, Laravel 10?
Для ответа на этот вопрос, перейдите на Packagist, введите имя пакета и посмотрите, получал ли он последние обновление. В списке зависимостей вы должны увидеть "ìlluminate/что-то": "^10.0"
.
Возьмём, к примеру, spatie/laravel-permissions — один из самых популярных пакетов для Laravel.
На скриншоте ниже видно, что он поддерживает Laravel 7, 8, 9 и 10.
Если нет ни каких признаков, что используемы пакеты были обновлены для Laravel 10, подождите немного, прежде чем обновлять свой проект.
Однако некоторые люди не настолько терпеливы.
К счастью, добавление поддержки Laravel 10 для пакета Composer в большинстве случаев связано с изменением ограничений версии ìlluminate/что-то
в composer.json
, поэтому в наши дни не так много критических изменений между обновлениями:
{
"require": {
…
- "illuminate/support": "^9.0",
+ "illuminate/support": "^10.0",
…
}
}
Вы можете создать Pull Request, чтобы помочь разработчику поддерживающему пакет, или создать свой fork пакета и внести изменения самостоятельно.
Следуйте руководству по обновлению
Нет никаких хитростей в обновлении Laravel приложения. Вам нужно следовать инструкциям в руководстве по обновлению
Эти инструкции, обычно, заключаются в следующем:
- Измените минимальную версию для данной зависимости
- Измените строку в указанном файле.
- Метод изменил свои параметры или возвращаемое значение. Проверьте, используете ли вы его, и внесите необходимые изменения.
- Ранее устаревший класс или метод были удалены, используйте что-то другое (руководство всегда предлагает альтернативы).
В зависимости от размера кодовой базы, насколько она хорошо протестирована и даже от количества проектов, которые вам нужно обновить, это может занять много времени.