Это последний квартал года, и я все больше и больше воодушевляюсь предстоящим выпуском Laravel 11. Давайте подведем итоги!

Дата выпуска

В текущей Политике поддержки указано, что Laravel 11 будет выпущен в первом квартале. 2024 года. В других блогах мы можем прочитать, что запланированная дата выпуска — 6 февраля 2024 года.

Новые функции

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

Что мы знаем о новом скелете?

По запросу Тейлора Отвелла мы знаем, что изменений будет много. Я углублюсь в это вместо вас, чтобы вам не пришлось это делать.

Конфигурация

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

Промежуточное ПО

Промежуточное программное обеспечение

Authenticate и AuthenticationException получают новые методы redirectUsing, которые принимают Closure. Новый представленный класс компоновщика приложений Middleware (вы прочтете об этом позже) поможет вам определить эти Замыкания. Закрытие определяет, куда будут перенаправляться неаутентифицированные пользователи.

Промежуточное ПО Authenticate не будет возвращать перенаправление, если запрос ожидает JSON.

RedirectIfAuthenticated станет частью платформы. Промежуточное ПО также будет включать в себя redirectUsing, который можно определить с помощью помощников в классе компоновщика приложений Middleware.

Промежуточное программное обеспечение AuthenticateSession также будет иметь функцию redirectUsing, которая Closure может быть определена через приложение Middleware класс строителя.

TrimStrings будет иметь метод кроме, позволяющий определить, какие строки не следует обрезать.

ValidateCsrfToken будет иметь метод кроме, чтобы определить, какие пути не должны проверяться токеном CSRF.

Промежуточное ПО ValidateSignature будет иметь метод кроме, позволяющий определить, какие параметры не включены в проверку подписи.

TrustHosts по умолчанию разрешает все субдомены URL-адреса приложения.

TrustProxies по умолчанию будет доверять всем прокси.

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

Мероприятия

EventServiceProvider обнаруживает события по умолчанию. SendEmailVerificationNotification будет автоматически прикреплен к событию Registered.

Ремесленные команды

Некоторые команды получили псевдонимы, чтобы все они находились в пространстве имен make.

  • cache:table будет иметь псевдоним make:cache-table
  • notifications:table будет иметь псевдоним make:notifications-table
  • queue:batches-table будет иметь псевдоним make:queue-batches-table
  • queue:failed-table будет иметь псевдоним make:queue-failed-table
  • queue:table будет иметь псевдоним make:queue-table
  • session:table будет иметь псевдоним make:session-table

К командам закрытия будет добавлена ​​команда планирования, что позволит плавно планировать команды закрытия в файле маршрутов консоли.

Планировщик консоли будет доступен под фасадом Schedule.

Поставщики услуг

Класс RegisterProviders сможет загружать дополнительных поставщиков из bootstrap/providers.php.

make:provider автоматически добавит нового поставщика услуг в bootstrap/providers.php, если файл существует.

В ServiceProvider есть новый метод static addProviderToBootstrapFile для добавления поставщика услуг в bootstrap/providers.php, если файл существует.< /п>

Конфигурация приложения

Класс Application получит несколько новых методов и помощников:

<ул> <ли> getBootstrapProvidersPath: возвращает местоположение файла поставщиков начальной загрузки. <ли> handleRequest и handleCommands: очистите и упростите файлы начальной загрузки/индекса уровня приложения. <ли> configure: позволяет свободно настраивать различные функции платформы, включая маршрутизацию и привязки контейнеров.

Новый ApplicationBuilder позволит легко настраивать различные основные функции платформы, включая маршрутизацию, команды, промежуточное программное обеспечение, обработку исключений, загрузку/загруженные обратные вызовы и многое другое.

Вышеупомянутый класс построителя приложений Middleware будет введен, чтобы позволить определять новые группы промежуточного программного обеспечения, добавлять промежуточное программное обеспечение в начало и добавлять его к существующим группам, заменять промежуточное программное обеспечение в существующих группах и использовать гибкие методы для включения промежуточного программного обеспечения, такие как < code>TrustHosts и EnsureFrontendRequestsAreStateful.

Обработчик исключений получит методы dontReport, dontReportDuulates, dontFlash и buildContextUsing.

Установщики

Команда install:api будет добавлена ​​для установки laravel/sanctum и раскомментирования маршрутов API в файле начальной загрузки.

Команда install:broadcasting будет добавлена ​​для раскомментирования маршрутов каналов в файле начальной загрузки. Кроме того, в каталог resources/js будет записан файл Laravel Echo, который содержит конфигурацию Echo. Директива для включения этого файла вставляется в основной файл bootstrap.js.


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