Дата публикации: 16.12.2022 в 17:07

Посмотрим что нас ждет в Laravel 10

0 комментария

Laravel 10 это следующая основная версия фреймворка, которая запланирована выйти 7 февраля 2023 года. В этой статье, мы хотели бы рассказать о новых фичах и изменениях, о которых нам уже известно.

Мы рекомендуем вам периодически возвращаться к этой статье в ближайшие недели, поскольку мы продолжим следить за тем, что будет вLaravel 10, и обновлять ее до февральского релиза.

Laravel 10. Дата выхода

ДоLaravel 9 основные версии фреймворка выходили примерно каждые пол года. Начиная сLaravel 9, команда Тэйлора перешла на ежегодный график апдейтов, выпустивLaravel 9 в феврале 2022 года (вместо ранее запланированной даты сентябрь 2021 года)

Laravel использует множество пакетов, управляемых сообществом, а также девять компонентов Symfony для ряда функций в рамках фреймворка. Symfony 6.0 должен быть выпущен в ноябре. По этой причине мы решили отложить выпуск Laravel 9.0 до 2022 года.

Отложив выпуск, мы можем обновить наши базовые компоненты Symfony до Symfony 6.0, без необходимости ждать до сентября 2022 года, чтобы выполнить это обновление. Кроме того, это лучше позиционирует нас для будущих релизов, поскольку наши ежегодные релизы всегда будут выходить через два месяца после релизов Symfony.

Это расписание в будущем представляет собой один мажорный релиз в год:

  • Laravel 9: 8 февраля, 2022

  • Laravel 10: 7 февраля , 2023

  • Laravel 11: 6 февраля, 2024

Laravel 9 продолжит получать баг-фиксы до 8 августа 2023 года и патчи безопасности вплоть до 6 февраля 2024 года. Что касается Laravel 10, то баг-фиксы будут выходить до 6 августа 2024 годаи патчи безопасности вплоть до 4 февраля 2025 года.

Laravel 10 удаление поддержки PHP 8.0

Laravel 10 прекратит поддержку версий PHP <=8.0. Минимальная требуемая версия PHP будет 8.1. Проводя сравнение между ветками master и 9.x, мы можем увидеть функции PHP 8.1, используемые в фреймворке, такие как свойства только для чтения (readonly properties).

Собственные объявления типов в скелете фреймворка

В Laravel 10 Каркасный код приложения будет иметь собственные объявления типов. Это означает, что любой код в пользовательской среде, сгенерированный фреймворком, будет иметь подсказки о типе и возвращаемых типах. В нашей статье обсуждаются предостережения, связанные с этим подходом, и мы думаем, что вам понравятся добавленные типы при создании новых проектов в будущем.

Типы добавляются таким образом, чтобы использовать новейшие функции PHP, указывающие на типы, в проектахLaravel без нарушения обратной совместимости на уровне фреймворка:

  • Возвращаемые типы

  • Аргументы метода

  • Избыточные аннотации удаляются там, где это возможно

  • Разрешены пользовательские типы в аргументах замыканиях

  • Не включает типизированные свойства

Invokable валидация по умолчанию

Начиная с Laravel 10, invokable правила проверки теперь используются по умолчанию. Когда вы создаете новое правило проверки с помощью artisan, это то, чего вы можете ожидать:


# Laravel 9 creates a rule class that implements the
# Illuminate\Contracts\Validation\Rule interface
artisan make:rule Uppercase
 
# Laravel 9 flag to create an invokable and implicit rule
artisan make:rule Uppercase --invokable
artisan make:rule Uppercase --invokable --implicit
 
# Laravel 10 creates an invokable rule by default
artisan make:rule Uppercase
 
# Laravel 10 implicit rule
artisan make:rule Uppercase --implicit

Устаревшая версияLaravel 9

Методы, помеченные как устаревшие в Laravel 9, удаляются в Laravel 10. Можно ожидать, что в руководстве по обновлению версии будут описаны все устаревшие методы, оценка потенциального воздействия и способы обновления ближе к релизу.

Вот некоторые deprecations, обнаруженные при сравнении основной ветки фреймворкаLaravel с веткой 9.x на момент написания статьи:

  • Удалены различные deprecations в pull request#41136
  • Удалено устаревшее свойство dates в #42587
  • Удален метод handleDeprecation в #42590
  • Удален метод assertTimesSent#42592
  • Удалено устаревшее свойство ScheduleListCommand в $defaultName 419471e
  • Удален устаревший метод Route::home #42614
  • Удалена устаревшая функциональность dispatchNow#42591

И еще...

До выхода Laravel 10 еще несколько месяцев, и наверняка появятся новые функции и анонсы. Мы будем обновлять эту статью по мере их появления. Вы также можете ознакомиться софициальной страницей релиза, чтобы найти обновленную информацию по мере ее появления.

Оригинал статьи

ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай
ОбщайсяРазвивайсяУчисьРаботай