Очередной релиз фреймворка с акцентом на нативные AI-воркфлоу, дефолтную безопасность и выразительные API.
Основные нововведения: встроенные AI-инструменты, JSON:API ресурсы, семантический/векторный поиск, улучшения очередей и кэша.
Минимальные Breaking Changes
В этом релизе основной упор сделан на минимизацию несовместимых изменений. Большинство приложений обновятся до Laravel 13 практически без изменений в коде.
PHP 8.3
Laravel 13 требует минимум PHP 8.3.
Laravel AI SDK
Первый официальный SDK для работы с ИИ: Laravel AI SDK — единый API для генерации текста, агентов с вызовом инструментов, эмбеддингов, аудио, изображений и интеграций с векторными хранилищами. SDK не привязан к конкретному провайдеру, полностью в духе Laravel.
Пример агента:
use App\Ai\Agents\SalesCoach; $response = SalesCoach::make()->prompt('Проанализируй эту переписку...'); return (string) $response;
Генерация изображений:
use Laravel\Ai\Image; $image = Image::of('Пончик на кухонном столе')->generate(); $rawContent = (string) $image;
Синтез речи:
use Laravel\Ai\Audio; $audio = Audio::of('Я люблю Laravel.')->generate(); $rawContent = (string) $audio;
Генерация эмбеддингов:
use Illuminate\Support\Str; $embeddings = Str::of('Долина Напа — край отличных вин.')->toEmbeddings();
JSON:API Resources
Теперь в Laravel есть нативная поддержка JSON:API ресурсов: сериализация объектов, включение связей, выбор полей, ссылки и заголовки ответа по стандарту.
Защита от подделки запросов
Middleware переименован в PreventRequestForgery и добавлена проверка источника запроса (origin-aware verification) при сохранении совместимости с токенами CSRF.
Маршрутизация очередей
Теперь можно централизованно задать соединение и очередь для конкретного джоба:
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
Расширенная поддержка PHP Attributes
Laravel 13 активно расширяет использование PHP-атрибутов по всему фреймворку — конфигурация становится декларативной и размещается прямо рядом с классами.
<?php namespace App\Http\Controllers; use App\Models\Comment; use App\Models\Post; use Illuminate\Routing\Attributes\Controllers\Authorize; use Illuminate\Routing\Attributes\Controllers\Middleware; #[Middleware('auth')] class CommentController { #[Middleware('subscribed')] #[Authorize('create', [Comment::class, 'post'])] public function store(Post $post) { // ... } }
Новые атрибуты для джобов: #[Tries], #[Backoff], #[Timeout], #[FailOnTimeout]. Также добавлены атрибуты для Eloquent, событий, уведомлений, валидации и тестирования.
Продление TTL кэша
Новый метод Cache::touch(...) позволяет продлить время жизни кэш-записи без её перезаписи.
Семантический / векторный поиск
Нативная поддержка векторных запросов на основе PostgreSQL + pgvector. Семантический поиск прямо из query builder
$documents = DB::table('documents') ->whereVectorSimilarTo('embedding', 'Лучшие винодельни в долине Напа') ->limit(10) ->get();
Обновление с использованием ИИ
Вы можете автоматизировать обновление с помощью Laravel Boost — это собственный MCP-сервер, который предоставляет вашему ИИ-помощнику подсказки по обновлению — после установки в любом приложении Laravel 12 используйте команду /upgrade-laravel-13 в Claude Code, Cursor, OpenCode, Gemini или VS Code, чтобы начать обновление.
Более подробно об обновлении до Laravel 13 рассказано в документации: https://laravel.com/docs/13.x/upgrade
Laravel World — вся самая свежатина о PHP и Laravel в Телеграме.!
Комментарии (9)

karrakoliko
17.03.2026 15:15Расширенная поддержка PHP Attributes
смотрю на этот контроллер, и мне плохо от количества магии в этих атрибутах
#[Authorize('create', [Comment::class, 'post'])] public function store(Post $post)так что с комментом происходит: create, post или store? а авторизовывается какое действие: create или post? почему контроллер CommentController работает с моделью Post, а не с Comment?
Middleware('subscribed')]что за мидлвэр "сабскрайбед"? кто на что подписан? где его искать чтобы понять что оно делает?
ларавел - жуть, ощущение что меня хотят запутать, а не помочь

undersunich
17.03.2026 15:15С аттрибутами и правда беда.Зачем и когда использовать опять надо в голове держать.Вроде AI поддержа выглядит красиво но эти аттрибуты это как: Вы подходите в двери и чтобы ее открыть - Вам нужен ключ. Вы его достаете и понимание что Вам теперь нужен еще ключ на этот ключ.И тут получается взрыв мозга.Мне же просто в дверь войти! Ребята явно заигрались с улучшениями

feycot
17.03.2026 15:15Я думаю тут проблема не в атрибутах, а ав нейминге, ну или в плохих примерах

karrakoliko
17.03.2026 15:15и там и там на самом деле
атрибут никак не помогает понять что именно происходит (сигнатура атрибута Authorize `create, [someClass::class, "post"]`, там где мы ожидаем чтото типа "авторизовать действие X")
мидлвэр "subscribed" указывает что где то есть какой то реестр именованных мидлвэров (а мог бы указывать на конректный класс, например)
возможно, если бы аргументы указывали бы с ключами (`paramName: value`), то было бы легче.
однако именно плохой пример с позиционными аргументами явно и наглядно демонстрирует дерьмовый дизайн фреймворка

renakdup
17.03.2026 15:15Laravel делает серьезный шаг в сторону AI-нативного подхода, это выглядит очень органично.
а AI SDK с единым API - то, чего не хватало для быстрого прототипирования + нативная поддержка семантического поиска через pgvector и развитие атрибутов. Код становится действительно декларативным. Спасибо команде за минимизацию breaking changes!
karrakoliko
17.03.2026 15:15я может чего то не понимаю, но они вроде просто завернули api'шку llm'ок в php api.
причем здесь ai-native, и что это вообще значит?
Cutcode
О спасибо за инфу, а то я совсем выпал)