Что нового в laravel 13

Вчера, 17 марта 2026 года, вышла 13-я версия PHP-ферймворка Laravel. По словам команды разработчиков:

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

Laravel 13 released

Итак, чтоже нового в в Laravel 13?

Изменение требований к минимальной версии PHP

Laravel 13 прекращает поддержку PHP 8.2 и теперь требует PHP версии 8.3 или выше.

Полноценная поддержка PHP-атрибутов

Самое заметное улучшение для разработчиков — внедрение нативных PHP-атрибутов во многие части фреймворка. Вот так, например, выглядит настройка модели User, с использованием атрибутов вместо традиционных свойств класса:

namespace App\Models;

...
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Hidden;
use Illuminate\Database\Eloquent\Attributes\Table;
...

#[Table(name: 'users', key: 'user_id', keyType: 'string', incrementing: false)]
#[Fillable(['login', 'email', 'password'])]
#[Hidden(['password', 'remember_token'])]
class User extends Authenticatable
{
    use HasFactory, Notifiable;
    
    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
        ];
    }
}

Теперь можно настраивать поведение не через свойства класса, а инлайн с помощью атрибутов для моделей, задач (Jobs), консольных команд, событий, уведомлений. Впрочем, использование атрибутов не является обязательным. Если кому-то более предпочтителен старый стиль описания свойств, то можно оставить всё как раньше.

Laravel AI SDK

Laravel 13 представляет первый официальный Laravel AI SDK, предоставляющий единый API для генерации текста, агентов с вызовом инструментов, эмбеддингов, аудио, изображений и интеграции с векторными базами данных.

JSON:API ресурсы

Теперь Laravel включает официальные JSON:API ресурсы, что упрощает возврат ответов, соответствующих спецификации JSON:API. Они обрабатывают сериализацию объектов ресурсов, включение связей, разреженные наборы полей, ссылки и заголовки ответов, соответствующие JSON:API.

Маршрутизация очередей

В Laravel 13 добавлена маршрутизация очередей по классу через Queue::route(...), что позволяет в одном месте задавать правила маршрутизации (подключение/очередь) для конкретных задач:

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');

Семантический / Векторный поиск

Laravel 13 обладает нативной поддержкой векторных запросов, workflow для эмбеддингов и связанными API, описанными в разделах документации по поиску, запросам и AI SDK.

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

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

$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Лучшие винодельни в долине Напа')
    ->limit(10)
    ->get();

Продление TTL кэша

Добавлен метод Cache::touch(), который продлевает время жизни (TTL) кешированного элемента без его извлечения или повторного сохранения:

Раньше для продления TTL требовалось выполнить get, а затем put, что приводило к ненужной передаче кешированного значения по сети. Cache::touch() пропускает этот шаг — Redis использует одну команду EXPIRE, Memcached — TOUCH, а драйвер базы данных выполняет один UPDATE.

// Продлить на секунды
Cache::touch('user_session:123', 3600);

// Продлить до указанной даты и времени
Cache::touch('analytics_data', now()->addHours(6));

// Продлить бессрочно
Cache::touch('report_cache', null);

Метод возвращает true при успехе и false, если ключ не существует. Он реализован для всех драйверов кеша: Array, APC, Database, DynamoDB, File, Memcached, Memoized, Null и Redis.

График поддержки Laravel 13

Следуя установленной политике поддержки Laravel, Laravel 13 будет получать исправления ошибок до 3-го квартала 2027 года и обновления безопасности до 1-го квартала 2028 года. Предыдущая версия - Laravel 12, выпущенная 24 февраля 2025 года, продолжит получать исправления ошибок до 13 августа  (а исправления безопасности - до 24 февраля 2027 года).