- Выход Laravel 10
- График выхода релизов Laravel
- В Laravel 10 прекращена поддержка PHP 8.0
- Laravel Pennant
- Process layer для Laravel
- Нативные объявления типов в скелете Laravel 10
- Вызываемые правила проверки являются правилами по умолчанию в Laravel 10
- Возможность профилирования в Laravel 10 для тестов
- Новый помощник String Password в Laravel 10
- Устаревшие элементы в Laravel 9
- Тестирование Laravel 10
- Обновление до версии Laravel 10
- И многое другое...
Выход Laravel 10.
Вышел релиз Laravel 10, включающий минимальную версию PHP 8.1, новый пакет Laravel Pennant, вызываемые правила валидации, нативные объявления типов и многое другое....
График выхода релизов Laravel.
До 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: 14 февраля 2023 года
- Laravel 11: 1 квартал 2024 года
Laravel 9 будет продолжать получать исправления ошибок до 8 августа 2023 года и исправления безопасности до 14 февраля 2024 года.
Исправления ошибок Laravel 10 можно ожидать до 6 августа 2024 года, а исправления безопасности - до 14 февраля 2025 года.
Давайте рассмотрим некоторые из важных новых возможностей Laravel 10.
В Laravel 10 прекращена поддержка PHP 8.0.
Фреймворк Laravel откажется от поддержки PHP <=v8.0 в Laravel 10. Минимальная требуемая версия - PHP ^8.1. Просматривая сравнение между master и 9.x, можно ожидать, что в фреймворке будут использоваться функции PHP 8.1, такие как свойства с возможностью чтения.
Laravel Pennant.
Laravel Pennant - это пакет, созданный командой Laravel, который появится в Laravel 10 и обеспечит Feature Flags для ваших приложений.
Флаги возможностей (Feature Flags) позволяют постепенно и уверенно внедрять новые возможности приложения, проводить A/B-тестирование новых дизайнов интерфейсов, дополнять стратегию разработки на основе магистрали и многое другое.
Этот пакет является последним в линейке официальных пакетов, предоставляемых основной командой разработчиков Laravel, и означает, что теперь в распоряжении разработчиков есть хорошо собранный и протестированный пакет, который предоставляет большие функциональные возможности.
Process layer для 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 layer включает в себя богатые возможности из коробки, такие как:
- Гибкие методы процесса для создания экземпляра процесса перед его запуском.
- Обработка выходных данных процесса по мере их получения.
- Асинхронные процессы.
- Пулы процессов.
- Богатые возможности тестирования с помощью
fake()
. - Предотвращение паразитных процессов во время тестирования.
Тестирование процессов в Laravel еще никогда не было таким простым.
Нативные объявления типов в скелете Laravel 10.
В Laravel 10 скелетный код приложения будет иметь нативные объявления типов. Это означает, что любой код в пользовательском пространстве, генерируемый фреймворком, будет иметь подсказки типов и возвращаемые типы. В этой статье обсуждаются нюансы данного подхода, и думается, что добавленные типы понравятся всем при создании новых проектов в будущем.
Типы добавляются таким образом, чтобы привнести в проекты Laravel новейшие возможности подсказок типов PHP без нарушения обратной совместимости на уровне фреймворка:
- Возвращаемые типы.
- Аргументы метода.
- Избыточные аннотации удаляются там, где это возможно.
- Разрешить пользовательские типы в закрывающих аргументах.
- Не включает типизированные свойства.
Вызываемые правила проверки являются правилами по умолчанию в Laravel 10.
Начиная с 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
Возможность профилирования в Laravel 10 для тестов.
Новая функция Laravel 10 - параметр --profile
, который облегчит обнаружение медленных тестов в приложениях.
Этот параметр --profile
должен помочь сохранить скорость выполнения тестов и помочь либо исправить медленные тесты, либо лучше сгруппировать их, чтобы не запускать их постоянно.
Новый помощник String Password в Laravel 10.
Метод Str::password
может генерировать надежный случайный пароль заданной длины. Пароль будет состоять из комбинации букв, цифр, символов и пробелов. По умолчанию длина пароля составляет 32 символа:
use Illuminate\Support\Str;
$password = Str::password();
// 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
$password = Str::password(12);
// 'qwuar>#V|i]N'
Устаревшие элементы в 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 Shift, который может автоматизировать постоянное обновление вашего приложения, или воспользоваться руководством по обновлению.
И многое другое...
Кроме того, на официальной странице релизов можно найти обновленную информацию по мере ее поступления.
Перевод с английского официальных новостей Laravel:
https://laravel-news.com/laravel-10
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)