Это последний квартал года, и я все больше и больше воодушевляюсь предстоящим выпуском Laravel 11. Давайте подведем итоги!
Дата выпуска
В текущей Политике поддержки указано, что Laravel 11 будет выпущен в первом квартале. 2024 года. В других блогах мы можем прочитать, что запланированная дата выпуска — 6 февраля 2024 года.
Новые функции
В выпуске мэра Laravels обычно содержится больше серьезных изменений, чем крупных улучшений функций. Самым большим изменением Laravel 11 станет уменьшенный скелет. Подробнее об этом читайте ниже.
- Скелет будет уменьшен
- на основании политики поддержки Поддержка PHP 8.1 прекращена
- Почтовые уведомления будут использовать Mailables
- Улучшенная обработка ошибок API
- см. другие запросы на включение для 11.x
Что мы знаем о новом скелете?
По запросу Тейлора Отвелла мы знаем, что изменений будет много. Я углублюсь в это вместо вас, чтобы вам не пришлось это делать.
Конфигурация
Все файлы конфигурации будут иметь аналоги платформы, которые будут объединены с конфигурацией приложения. Файлы конфигурации по умолчанию будут использовать больше переменных среды, поэтому ваш .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.
Как видите, нас ждет много изменений. Этот запрос на включение все еще выполняется, поэтому могут быть внесены дополнительные изменения.