Очередной релиз фреймворка с акцентом на нативные 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 в Телеграме.!