Идёт обновление сайта. Несколько дней возможны сбои в оформлении и переводах. Документация работает — если страница выглядит сломанной, обновите её позже.

Документация
L Laravel L intervention/image
Войти
Главная Laravel 10.x Заметки о выпуске

Заметки о выпуске

10.x 7 мар 2026 г.

#Схема версионирования

Laravel и другие официальные пакеты следуют семантическому версионированию. Основные версии фреймворка выходят ежегодно (~Q1), тогда как минорные и патч-релизы могут выходить еженедельно. Минорные и патч-релизы никогда не должны содержать изменений, нарушающих обратную совместимость.

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

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

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

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

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

Версия PHP (*) Дата выпуска Исправления ошибок до Исправления безопасности до
8 7.3 - 8.1 8 сентября 2020 26 июля 2022 24 января 2023
9 8.0 - 8.2 8 февраля 2022 8 августа 2023 6 февраля 2024
10 8.1 - 8.3 14 февраля 2023 6 августа 2024 4 февраля 2025
11 8.2 - 8.4 12 марта 2024 3 сентября 2025 12 марта 2026
<div class="end-of-life">
    <div class="color-box"></div>
    <div>Конец поддержки</div>
</div>
<div class="security-fixes">
    <div class="color-box"></div>
    <div>Только исправления безопасности</div>
</div>

(*) Поддерживаемые версии PHP

#Laravel 10

Как вы, возможно, знаете, с выходом Laravel 8 был введён ежегодный цикл релизов. Ранее основные версии выходили каждые 6 месяцев. Этот переход направлен на снижение нагрузки по поддержке для сообщества и стимулирование нашей команды разработки выпускать мощные новые функции без нарушения обратной совместимости. Поэтому в Laravel 9 было добавлено множество надёжных функций без ломающих изменений.

Таким образом, эта политика выпуска значимых новых функций в текущем релизе, вероятно, приведёт к тому, что будущие «основные» релизы будут в основном посвящены «обслуживанию», например обновлению зависимостей, что отражено в этих заметках о выпуске.

Laravel 10 продолжает улучшения, начатые в Laravel 9.x, вводя типы аргументов и возвращаемых значений во все методы каркаса приложения, а также во все шаблонные файлы, используемые для генерации классов по всему фреймворку. Кроме того, добавлен новый удобный для разработчиков уровень абстракции для запуска и взаимодействия с внешними процессами. Также представлен Laravel Pennant — отличный инструмент для управления «флагами функций» вашего приложения.

#PHP 8.1

Laravel 10.x требует минимальную версию PHP 8.1.

#Типы

Подсказки типов для каркаса приложения и шаблонов были внесены Nuno Maduro.

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

Laravel 10.x полностью обновляет каркас приложения и все шаблоны, используемые фреймворком, добавляя типы аргументов и возвращаемых значений во все сигнатуры методов. Кроме того, удалена избыточная информация о типах из «doc block».

Это изменение полностью обратно совместимо с существующими приложениями. Следовательно, приложения без этих подсказок типов будут работать как и прежде.

#Laravel Pennant

Laravel Pennant разработан Tim MacDonald.

Выпущен новый официальный пакет Laravel Pennant. Он предлагает лёгкий и упрощённый способ управления флагами функций вашего приложения. Из коробки Pennant включает драйвер на основе array в памяти и драйвер database для постоянного хранения флагов.

Флаги функций легко определяются через метод Feature::define:

use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;

Feature::define('new-onboarding-flow', function () {
    return Lottery::odds(1, 10);
});

После определения флага вы можете легко проверить, имеет ли текущий пользователь доступ к данной функции:

if (Feature::active('new-onboarding-flow')) {
    // ...
}

Для удобства также доступны директивы Blade:

@feature('new-onboarding-flow')
    <div>
        <!-- ... -->
    </div>
@endfeature

Pennant предлагает множество более продвинутых функций и API. Для подробностей ознакомьтесь с полной документацией Pennant.

#Взаимодействие с процессами

Уровень абстракции процессов внесли Nuno Maduro и Taylor Otwell.

Laravel 10.x вводит удобный уровень абстракции для запуска и взаимодействия с внешними процессами через новый фасад Process:

use Illuminate\Support\Facades\Process;

$result = Process::run('ls -la');

return $result->output();

Процессы можно запускать в пулах, что позволяет удобно выполнять и управлять параллельными процессами:

use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;

[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
    $pool->command('cat first.txt');
    $pool->command('cat second.txt');
    $pool->command('cat third.txt');
});

return $first->output();

Кроме того, процессы можно имитировать для удобного тестирования:

Process::fake();

// ...

Process::assertRan('ls -la');

Для получения дополнительной информации о взаимодействии с процессами ознакомьтесь с полной документацией по процессам.

#Профилирование тестов

Профилирование тестов внес Nuno Maduro.

Команда Artisan test получила новую опцию --profile, которая позволяет легко выявлять самые медленные тесты в вашем приложении:

php artisan test --profile

Для удобства самые медленные тесты будут отображаться прямо в выводе CLI:

<img width="100%" src="https://user-images.githubusercontent.com/5457236/217328439-d8d983ec-d0fc-4cde-93d9-ae5bccf5df14.png"/>

#Шаблоны Pest

Новые проекты Laravel теперь по умолчанию могут создаваться с шаблонами тестов Pest. Чтобы включить эту функцию, используйте флаг --pest при создании нового приложения через установщик Laravel:

laravel new example-application --pest

#Всплывающие подсказки генератора CLI

Всплывающие подсказки генератора CLI внесла Jess Archer.

Для улучшения опыта разработчиков все встроенные команды make Laravel теперь не требуют обязательного ввода. Если команды вызываются без аргументов, вы получите подсказки для ввода необходимых параметров:

php artisan make:controller

#Обновление интерфейса Horizon / Telescope

Horizon и Telescope получили обновлённый современный дизайн с улучшенной типографикой, отступами и оформлением: