Laravel 11 — это следующий крупный выпуск популярного фреймворка PHP с новыми функциями и улучшениями. Из этого урока вы узнаете: Когда выйдет Laravel 11? Как установить Ларавель 11? Что нового в Laravel 11? и более.
Laravel — это мощная и гибкая веб-инфраструктура PHP, которая завоевала огромную популярность в мире веб-разработки.
Он предоставляет разработчикам богатый набор инструментов и функций, упрощающих создание надежных и масштабируемых веб-приложений.
11-я версия Laravel выйдет в следующем году, и мы уже знаем о ней кое-что.
Оглавление:
Согласно Политике поддержки , выпуск Laravel 11 запланирован на 6 февраля 2024 года .
Однако выпуск Laravel 11 не означает, что вам нужно немедленно обновить все свои проекты.
В последний раз у фреймворка была LTS (долгосрочная поддержка) в версии 6, но каждая основная версия имеет два года обновлений , что должно дать вам достаточно времени, чтобы проверить свою кодовую базу и обновить ее.
Laravel 10 будет получать исправления ошибок до 6 августа 2024 года и исправления безопасности до 4 февраля 2025 года.
Версия | PHP | Выпускать | Исправлены ошибки, пока | Исправления безопасности до |
---|---|---|---|---|
десять | 8.1 | 14 февраля 2023 г. | 6 августа 2024 г. | 4 февраля 2025 г. |
11 | 8.2 | 1 кв. 2024 г. | 5 августа 2025 г. | 3 февраля 2026 г. |
Laravel 11 еще не выпущен. Поэтому вы должны использовать флаг --dev в официальном установщике Laravel, который извлекает ветку master из репозитория laravel/laravel , который всегда содержит последний код.
laravel new hello-world --dev
Или, если вы предпочитаете явно использовать Composer:
composer create-project --prefer-dist laravel/laravel hello-world dev-master
Когда будет выпущен Laravel 11, будет установлен PHP 8.2, и PHP 8.3 также будет стабильным. Благодаря поддержке последних двух основных версий PHP Laravel может двигаться дальше и отказаться от версии 8.1.
Но помните: ваши приложения Laravel не нужно обновлять до последней и лучшей версии сразу после их выпуска.
Особенно, если у вас есть проекты с платными клиентами или сотрудниками, работа которых зависит от них.
Эти проекты должны медленно, но верно продвигаться вперед, проводя всестороннее тестирование. Не спешите.
См. запрос на вытягивание на GitHub: [11.x] Отказ от поддержки PHP 8.1
Laravel 11 поставляется с более тонким скелетом приложения. Идея заключается в том, что у вас должно быть меньше стандартного кода для работы. Я не мог не согласиться. Вот подробности этого изменения:
В AuthServiceProvider свойство $policies удалено, так как они автоматически обнаруживаются фреймворком.
В EventServiceProvider SendEmailVerificationNotification больше не требуется, так как базовый EventServiceProvider позаботится о его регистрации . Вы также заметите, что автоматическое обнаружение событий теперь включено по умолчанию.
BroadcastServiceProvider больше не нужен и был удален. Фреймворк не загружает файл route/channels.php автоматически .
RedirectIfAuthenticated теперь проще благодаря базовому во внутренностях фреймворка.
Промежуточное ПО Authenticate больше не вызывает redirectTo() для маршрутов JSON. Это удаляет ненужную троичную проверку.
Промежуточное ПО EncryptCookies , PreventRequestsDuringMaintenance.php , TrimStrings , TrustHosts , TrustProxies , ValidateCsrfToken и ValidateSignature удалено из скелета.
Пользовательские команды Artisan теперь загружаются автоматически. Нет необходимости вызывать метод load() в ядре консоли.
Маршруты /console.php были удалены. Команды Artisan на основе закрытия могут быть зарегистрированы в ядре консоли.
Некоторые миграции были объединены в один файл или просто удалены.
Трейты AuthorizesRequests и ValidatesRequests были удалены из базового контроллера .
Файл bootstrap /app.php был сокращен до 3 строк кода.
Обработчик исключения был удален.
Вот оригинальный PR для Laravel 10 ( [10.x] Slimmer Application Skeleton ), который позже был перенесен в Laravel 11. Вы найдете еще больше информации о том, что было изменено.
Этот запрос на вытягивание вводит новый трейт Dumpable , предназначенный для замены текущих методов dd и dump в большинстве классов Laravel.
Эта черта позволяет пользователям Laravel и авторам пакетов легко включать методы отладки в свои классы, используя эту черту.
Вот пример кода, показывающий, как его можно использовать:
<?php
namespace App\ValueObjects;
use Illuminate\Support\Traits\Dumpable;
use Illuminate\Support\Traits\Conditionable;
class Address
{
use Conditionable, Dumpable;
// ...
}
$address = new Address;
// Before:
$address->foo()->bar();
// After:
$address->foo()->dd()->bar();
См. запрос на вытягивание на GitHub: [11.x] Добавлена возможность дампа.
Обычно в Laravel вы объявляете приведение атрибутов в модели Eloquent следующим образом:
class User extends Model
{
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Благодаря этому обновлению вы теперь можете определять приведение через метод casts() в своей модели, что дает вам возможность использовать статические методы из класса, выполняющего приведение. Вот как это выглядит:
class User extends Model
{
protected function casts(): array
{
return [
'foo' => AsCollection::using(FooCollection::class),
];
}
}
Более того, теперь вы также можете указать свои приведения в виде массива:
class User extends Model
{
// Even in the old $casts property!
protected $casts = [
'foo' => [AsCollection::class, FooCollection::class],
];
protected function casts() : array
{
return [
'foo' => [AsCollection::class, FooCollection::class],
];
}
}
Метод casts () имеет приоритет над свойством $casts .
Все эти изменения не являются критическими, то есть они не повлияют на ваш текущий код, если вы обновитесь до Laravel 11.
См. запрос на вытягивание на GitHub: [11.x] Добавляет метод Model::casts() и именованные статические методы для встроенных роликов.
Вот список всех объединенных PR, которые я нашел для подготовки выпуска Laravel 11:
Знаете ли вы, что можете создать следующую большую функцию для Laravel 11?
Один важный совет, чтобы увеличить ваши шансы на слияние: добавьте что-то во фреймворк, что принесет пользу разработчикам, но не будет проблемой для Тейлора и его команды в долгосрочной перспективе.
Это то, что нового в Laravel 11 на данный момент.
Однако до февраля 2024 года все еще впереди.
#laravel #php