Взгляд на то, что появится в Laravel 11
Обзор того, что появится в Laravel 11


Когда ждать новый Laravel?

Выход Laravel 11 запланирован не ранее 1 квартала 2024 года, но некоторые новые функции уже представлены в Laravel 10, и Тейлор в своем выступлении на Laracon 2023 года рассказал о некоторых новых крупных улучшениях.

Обновленная структура директорий Laravel

Пока это только предварительная Beta версия. Все может измениться, но на данный момент вот что можно ожидать...

Контроллеры больше не будут расширять ничего по умолчанию.

Больше не будет каталога middleware. В настоящее время Laravel включает в себя девять middleware, и многие из них никогда не будут настраиваться. Однако если потребуется их настройка, то она переносится в App/ServiceProvider. Например:

public function boot(): void
{
    EncryptCookies::except(['some_cookie']);
}

Больше никаких Http/Kernel в Laravel

Большинство вещей, которые раньше можно было сделать в Kernel, теперь можно будет сделать в Bootstrap/App.

return Application::configure()
    ->withProviders ()
    -›withRouting(
        web: __DIR__.'/../routes/web.php'
        commands: __DIR__.'/../routes/console.php',
    )
    ->withMiddleware(function(Middleware Smiddleware) {
        $middleware->web(append: LaraconMiddleware::class):
    })

Изменения в конструкции Модели Laravel

Теперь образцы моделей определяются как метод, а не как свойство. Когда они определены как метод, мы можем делать другие вещи, например, вызывать другие методы непосредственно из данных моделей. Ниже пример с использованием новой коллекции Laravel 11 AsEnumCollection:

protected function casts(): array
{
    return [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        'options'=› AsEnumCollection::of(UserOption::class),
    ];
}

Изменения в конфига Laravel

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

В дополнение к этому появилась новая команда config:publish, позволяющая вернуть в систему все необходимые конфигурации. Даже если вы вернете их обратно, новая каскадная функция позволит вам удалить все параметры, которые вы не хотите настраивать.

Уменьшение миграций по умолчанию в Laravel

Когда запускается новое приложение Laravel, оно поставляется с некоторыми миграциями по умолчанию от 2014 и 2019 годов. Теперь они будут поставляться с удаленными датами и будут перемещены всего в два файла.

Изменения маршрутов в Laravel

По умолчанию будет только два файла маршрутов, console.php и web.php. Маршруты API теперь станут доступны через php artisan install:api, что даст в результате файл маршрутов API и Laravel Sanctum.

То же самое с трансляцией через websocket, php artisan install:broadcasting.

Удаление ядра консоли Laravel

Ядро консоли удаляется, и вместо него можно будет определять команды консоли непосредственно в файле routes/console.php.

Именованные аргументы в Laravel

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

Поддержка PHP 8.2 на минимальном уровне для Laravel

Это было принято заранее, но для приложений на Laravel 11 требуется как минимум PHP 8.2. Если используется более старая версия PHP, сейчас самое время обновить ее.

Политика поддержки Laravel

Для всех релизов Laravel исправления ошибок предоставляются в течение 18 месяцев, а исправления безопасности - в течение 2 лет. Для всех дополнительных библиотек, включая Lumen, исправления ошибок предоставляются только в последнем мажорном релизе.

Версия
Laravel
Версия
PHP (*)
Выход
релиза
Исправление
ошибок
Исправления
безопасности
Laravel 9 8.0 - 8.2 8 февраля 2022 года 8 августа 2023 года 6 февраля 2024 года
Laravel 10 8.1 - 8.2 1 квартал 2023 года 6 августа 2024 года 4 февраля 2025 года
Laravel 11 8.2 1 квартал 2024 года 5 августа 2024 года 3 февраля 2026 года

Итого

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

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

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

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