Взгляд на то, что будет в Laravel 10
Посмотрим на то, что ожидается в Laravel 10


Laravel 10 - это следующая версия Laravel.

Laravel 10 - это следующая основная версия Laravel, выпуск которой запланирован на февраль 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: февраль, 2023
  • Laravel 11: февраль, 2024

Laravel 9 будет продолжать получать исправления ошибок до 8 августа 2023 года и исправления безопасности до 6 февраля 2024 года.

Исправления ошибок Laravel 10 можно ожидать до 6 августа 2024 года, а исправления безопасности - до 4 февраля 2025 года.

Уровень процессов для Laravel.

Служба Laravel Process делает тестирование и запуск CLI-процессов просто сказочной фантазией.

use Illuminate\Support\Facades\Process;
 
$result = Process::run('ls -la');
 
$result->successful();
$result->failed();
$result->exitCode();
$result->output();
$result->errorOutput();
$result->throw();
$result->throwIf($condition);

Уровень Process включает в себя большие возможности из коробки, такие как:

  • Удобные методы процесса для создания экземпляра процесса перед его исполнением.
  • Обработка выходных данных процесса по мере их получения.
  • Асинхронные процессы.
  • Пулы процессов.
  • Богатые возможности тестирования с помощью `fake()`.
  • Предотвращение появления паразитных процессов во время тестирования.

Тестирование процессов еще никогда не было таким простым

Новый конкурс Laravel "Охота на баги".

В Laravel 10 проводится новый конкурс "Охота за ошибками", который продлится до официальной даты релиза.

В Laravel 10 прекращена поддержка PHP 8.0.

Фреймворк Laravel откажется от поддержки PHP <=v8.0 в Laravel 10. Минимальная требуемая версия PHP ^8.1. Просматривая сравнение между master и 9.x, можно ожидать, что в фреймворке будут использоваться функции PHP 8.1, такие как свойства с возможностью чтения.

Нативные объявления типов в скелетоне Laravel 10.

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

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

  • Возвращаемые типы.
  • Аргументы метода.
  • Избыточные аннотации удаляются там, где это возможно.
  • Разрешить пользовательские типы внутри аргументов замыкания.
  • Не включает типизированные свойства.

Invokable правила проверки являются правилами по умолчанию.

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

# Laravel 9 создает класс правил, который реализует
# интерфейс Illuminate\Contracts\Validation\Rule
artisan make:rule Uppercase
 
# Флаг Laravel 9 для создания вызываемого и неявного правила
artisan make:rule Uppercase --invokable
artisan make:rule Uppercase --invokable --implicit
 
# Laravel 10 по умолчанию создает вызываемое правило
artisan make:rule Uppercase
 
# Неявное правило Laravel 10
artisan make:rule Uppercase --implicit

Свойство `--profile` для тестов в Laravel 10.

В Laravel 10 появится новая возможность - опция --profile, которая облегчит поиск медленных тестов в вашем приложении.

Gоиск медленных тестов в приложении в Laravel 10

Эта опция --profile должна помочь обеспечить быстродействие тестов и помочь вам либо исправить медленные тесты, либо лучше сгруппировать их, чтобы не запускать их постоянно.

Изменения в сравнении с Laravel 9.

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

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

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

Тестирование Laravel 10.

Если вы хотите начать тестирование Laravel 10 прямо сейчас, то его можно установить в свежий проект с помощью флага --dev:

laravel new <your-project-name> --dev

Обновление до Laravel 10.

Как только Laravel 10 станет официальным, обязательно ознакомьтесь с Laravel Shift - это простой и автоматизированный способ поддерживать ваше приложение в актуальном состоянии.

И еще...

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

Перевод с английского официальных новостей Laravel:
https://laravel-news.com/laravel-10

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню