Laravel 13 — наступний major-реліз фреймворку Laravel, запланований на березень 2026 року. Цей реліз вимагатиме мінімум PHP 8.3 і дотримуватиметься стандартного циклу підтримки Laravel: виправлення багів до III кварталу 2027 року та оновлення безпеки до I кварталу 2028 року.
# Нові можливості
Опис нововведень у Laravel 13 з’являтиметься тут по мірі їх оголошення.
# PHP Attributes Support
PR #58578 додає підтримку PHP 8 Attributes як альтернативу властивостям класу для конфігурації компонентів Laravel. Це зміна, що не порушує зворотної сумісності — існуючі конфігурації на основі властивостей продовжують працювати.

# Eloquent Models
Нові атрибути замінюють потребу визначати $table, $hidden, $fillable та інші властивості в моделях:
#[Table('users', key: 'user_id', keyType: 'string', incrementing: false)]
#[Hidden(['password'])]
#[Fillable(['name', 'email'])]
class User extends Model {}
Доступні атрибути для моделей:
#[Appends]#[Connection]#[Fillable]#[Guarded]#[Hidden]#[Table]#[Touches]#[Unguarded]- `#[Visible]
# Queue Jobs
Конфігурацію черги тепер можна задавати безпосередньо в класі job:
#[Connection('redis')]
#[Queue('podcasts')]
#[Tries(3)]
#[Timeout(120)]
class ProcessPodcast implements ShouldQueue {}
Доступні атрибути для черг:
#[Backoff]#[Connection]#[FailOnTimeout]#[MaxExceptions]#[Queue]#[Timeout]#[Tries]#[UniqueFor]
Ці атрибути також застосовуються до listeners, notifications, mailables та broadcast events.
# Console Commands
Команди можуть визначати signature та description через атрибути замість властивостей класу:
#[Signature('mail:send {user} {--queue}')]
#[Description('Send a marketing email to a user')]
class SendMailCommand extends Command {}
# Other Components
Атрибути також доступні для form requests (#[RedirectTo], #[StopOnFirstFailure]), API resources (#[Collects], #[PreserveKeys]), factories (#[UseModel]) та test seeders (#[Seed], #[Seeder]).
# Cache::touch()
PR #55954 додає метод Cache::touch(), який продовжує TTL кешованого елемента без читання чи повторного збереження значення:
// Extend by seconds
Cache::touch('user_session:123', 3600);
// Extend with a DateTime
Cache::touch('analytics_data', now()->addHours(6));
// Extend indefinitely
Cache::touch('report_cache', null);
Раніше для продовження TTL потрібно було виконати get, а потім put, тобто зайво передавати значення кешу по мережі. Cache::touch() уникає цього: Redis використовує один EXPIRE, Memcached — TOUCH, а драйвер бази даних виконує один UPDATE.
Метод повертає true при успіху і false, якщо ключ не існує. Реалізовано для всіх драйверів кешу: Array, APC, Database, DynamoDB, File, Memcached, Memoized, Null та Redis.
# Вимоги до версії PHP
Laravel 13 вимагатиме PHP 8.3 як мінімальну версію. Це підвищення порівняно з мінімальною вимогою PHP 8.2 у Laravel 12.
# Термін підтримки
За стандартною політикою підтримки, Laravel 13 отримає виправлення багів до III кварталу 2027 року та оновлення безпеки до I кварталу 2028 року:
| Версія | PHP (*) | Випуск | Виправлення багів до | Оновлення безпеки до |
|---|---|---|---|---|
| 10 | 8.1 - 8.3 | February 14th, 2023 | August 6th, 2024 | February 4th, 2025 |
| 11 | 8.2 - 8.4 | March 12th, 2024 | September 3rd, 2025 | March 12th, 2026 |
| 12 | 8.2 - 8.5 | February 24th, 2025 | August 13th, 2026 | February 24th, 2027 |
| 13 | 8.3 - 8.5 | Q1 2026 | Q3 2027 | Q1 2028 |
Laravel 12, випущений 24 лютого 2025 року, продовжуватиме отримувати:
- виправлення багів до 13 серпня 2026 року
- оновлення безпеки до 24 лютого 2027 року