Laravel 13 — это эволюционная версия фреймворка: она сохраняет совместимость с большинством приложений на Laravel 12, но добавляет заметные возможности для AI, JSON:API, PHP-атрибутов, очередей, кеша и безопасности. Главный практический вывод: обновление выглядит сравнительно спокойным, но перед миграцией нужно проверить PHP 8.3+, middleware CSRF, кеш, очереди, кастомные драйверы и зависимости проекта.

Laravel 13 продолжает развитие фреймворка, сохраняя совместимость с предыдущей версией, Laravel 12
Laravel 13 вышел 17 марта 2026 года и продолжает ежегодный цикл крупных релизов Laravel. В официальных release notes команда подчёркивает, что основной акцент сделан не на массовых breaking changes, а на постепенных улучшениях качества жизни разработчиков, новых API и более современных сценариях разработки.
Поэтому Laravel 13 нельзя воспринимать как «полностью новый Laravel». Это скорее аккуратное развитие Laravel 12: привычная архитектура остаётся, но появляются новые инструменты для AI-приложений, декларативной настройки через PHP-атрибуты, JSON:API-ответов, семантического поиска, очередей и усиленной защиты запросов.
Официальная документация указывает, что большинство приложений смогут перейти на Laravel 13 без серьёзной переработки бизнес-логики. Но это не значит, что обновление можно запускать без проверки: в Laravel 13 изменились минимальные требования, часть контрактов, поведение CSRF-защиты, некоторые нюансы кеша, очередей, роутинга и Eloquent.
PHP 8.3 становится минимальным требованием для Laravel 13
Самое важное отличие Laravel 13 от Laravel 12 — минимальная версия PHP. Laravel 12 поддерживал PHP 8.2–8.5, а Laravel 13 требует PHP 8.3–8.5. Это означает, что проекты на PHP 8.2 сначала должны обновить окружение, контейнеры, CI/CD, локальную разработку и production-серверы.
Для нового проекта это не проблема: PHP 8.3 уже достаточно зрелый. Для существующего проекта миграция может быть сложнее, особенно если приложение зависит от старых Composer-пакетов, legacy-хелперов или расширений, которые давно не обновлялись.
Практически это означает:
- перед обновлением Laravel нужно проверить
php -vна сервере, в Docker-образах и в CI; - обновить PHP-FPM, CLI-версию PHP и Composer-окружение;
- убедиться, что все используемые Composer-пакеты совместимы с PHP 8.3+;
- отдельно проверить расширения PHP:
pdo,mbstring,openssl,redis,intl,gd,imagickи другие, если они используются в проекте.
AI SDK делает Laravel удобной платформой для работы с искусственным интеллектом.
Одно из главных нововведений Laravel 13 — первый официальный Laravel AI SDK. Он даёт единый Laravel-стиль API для работы с генерацией текста, агентами с инструментами, embeddings, изображениями, аудио и vector store-интеграциями.
Для обычного Laravel-разработчика это важно потому, что AI-функции постепенно становятся частью веб-приложений: поиск по смыслу, автоматические подсказки, генерация текстов, обработка обращений пользователей, ассистенты в админке, анализ документов, классификация контента.
В Laravel 12 такие задачи обычно приходилось решать через отдельные SDK, самописные сервисы, обёртки над OpenAI/Anthropic/другими провайдерами или сторонние пакеты. Laravel 13 делает этот слой более «родным» для экосистемы: AI-функции можно строить в привычной архитектуре приложения, не превращая код в набор разрозненных API-клиентов.
Для проектов вроде каталогов, новостных порталов, CRM, маркетплейсов и внутренних панелей это открывает понятные сценарии:
- умный поиск по статьям, товарам или документам;
- AI-помощник для модерации контента;
- генерация кратких описаний и выдержек;
- классификация обращений пользователей;
- анализ переписок, заявок или технических логов;
- построение RAG-поиска поверх собственной базы знаний.
PHP-атрибуты уменьшают количество разрозненной конфигурации
Laravel 13 расширяет поддержку PHP-атрибутов. Это позволяет описывать часть поведения прямо рядом с классами и методами, а не разносить настройки по свойствам, конфигам и отдельным файлам.
В Laravel 13 атрибуты применяются в разных частях фреймворка: контроллерах, авторизации, middleware, моделях, заданиях очередей, событиях, уведомлениях, валидации, тестах и сериализации ресурсов.
Примерный смысл нововведения такой: вместо того чтобы держать часть логики «где-то рядом», разработчик может явно указать поведение прямо над методом или классом. Например, middleware и policy-проверка могут быть объявлены рядом с методом контроллера.
Это не обязательная замена старого подхода. Важная деталь: поддержка атрибутов в Laravel 13 опциональна и обратно совместима. Старые способы настройки продолжают работать, поэтому проект не нужно срочно переписывать ради новой синтаксической формы.
Польза особенно заметна в больших проектах: код становится легче читать, потому что часть важных правил видна прямо в месте использования.
JSON:API Resources упрощают стандартизированные API-ответы
Laravel 13 добавляет first-party JSON:API resources. Это важно для проектов, где API должен быть не просто «JSON как получится», а структурированным ответом по спецификации JSON:API.
JSON:API полезен, когда фронтенд, мобильное приложение, внешние клиенты или партнёрские интеграции ожидают предсказуемую структуру данных: resource object, relationships, sparse fieldsets, links и корректные JSON:API-заголовки.
В Laravel 12 подобную структуру можно было реализовать вручную или через сторонние решения. Laravel 13 делает этот сценарий ближе к стандартной поставке фреймворка.
Это особенно полезно для:
- публичных API;
- мобильных приложений;
- SaaS-платформ;
- headless-проектов;
- больших админок на Vue/React;
- интеграций, где важно стабильное описание связей между сущностями.
Семантический и векторный поиск становятся частью Laravel-стека
Laravel 13 усиливает направление semantic/vector search. В документации описаны API для работы с embeddings и запросами по смысловой близости, включая сценарии с PostgreSQL и pgvector.
Это не означает, что Laravel сам превращается в поисковый движок. Смысл другой: фреймворк даёт более удобный слой для построения AI-поиска внутри приложения.
Классический поиск работает по словам: пользователь ввёл «дешёвый VPS», система ищет совпадения по тексту. Семантический поиск работает по смыслу: он может понять, что «недорогой сервер для удалённого доступа» близок к «дешёвый VPS/RDP», даже если точные слова не совпадают.
Для контентных сайтов, каталогов и справочников это особенно ценно. Например, можно сделать поиск по статьям, Telegram-каналам, услугам или базе терминов не только по ключевым словам, но и по смысловой близости.
Queue Routing помогает централизованно управлять заданиями очередей
Laravel 13 добавляет маршрутизацию очередей по классу через Queue::route(...). Это позволяет централизованно указать, на какое соединение и в какую очередь должен попадать конкретный тип job.
В Laravel 12 подобную логику часто приходилось держать внутри самих job-классов, в местах dispatch-вызовов или в условной инфраструктурной логике. Новый подход удобнее для больших проектов: правила маршрутизации можно собрать в одном месте.
Например, тяжёлые задачи обработки медиа можно отправлять в одну очередь, email-уведомления — в другую, пересчёт аналитики — в третью, а критичные быстрые действия — в отдельную приоритетную очередь.
Это снижает риск хаоса, когда разные разработчики по-разному указывают connection/queue в разных местах приложения.
Cache::touch позволяет продлевать TTL без повторной записи значения
Laravel 13 добавляет Cache::touch(...) — возможность продлить время жизни существующего значения в кеше без чтения и повторной записи самого значения.
На практике это удобно там, где кешированный объект дорогой, большой или создаётся долго. Например, можно продлить TTL для результата тяжёлого отчёта, популярной страницы, промежуточного состояния обработки или данных, которые ещё актуальны, но скоро должны были истечь.
В Laravel 12 для подобного сценария чаще приходилось доставать значение из кеша и записывать его заново с новым TTL. Новый API делает поведение проще и понятнее.
Защита от подделки запросов получила новое имя и проверку origin
Одно из самых важных изменений для существующих проектов — обновление CSRF/request forgery middleware. В Laravel 13 middleware переименован с VerifyCsrfToken в PreventRequestForgery, а также получил origin-aware проверку с использованием заголовка Sec-Fetch-Site.
Старые VerifyCsrfToken и ValidateCsrfToken остаются как deprecated aliases, но прямые ссылки лучше обновить. Это особенно важно в тестах, route definitions и местах, где middleware явно исключается.
Практический риск здесь простой: если в проекте есть тесты, кастомные исключения middleware, API-эндпоинты, формы, виджеты или нестандартные сценарии отправки запросов, их нужно проверить после обновления. Особенно внимательно стоит смотреть на формы, iframe-сценарии, внешние callback-запросы и интеграции, которые могут вести себя иначе из-за origin-aware проверки.
Кеш стал строже относиться к сериализованным объектам
Laravel 13 добавляет в конфигурацию кеша параметр serializable_classes, который по умолчанию установлен в false. Это усиление безопасности: оно помогает снизить риск PHP deserialization gadget chain-атак, если APP_KEY приложения был скомпрометирован.
Для большинства проектов это хорошее изменение. Но если приложение намеренно хранит PHP-объекты в кеше и рассчитывает на их unserialize, поведение нужно пересмотреть. Laravel рекомендует явно перечислять классы, которые можно десериализовать, или перейти на более безопасные структуры данных: массивы, DTO-представления, JSON-совместимые payload.
Это важный пункт для старых приложений, где в кеш могли складываться полноценные объекты моделей, сервисов или сложных value object без строгого контроля.
Обновление зависимостей затрагивает фреймворк, тесты и Laravel Boost
Для перехода с Laravel 12 на Laravel 13 нужно обновить зависимости в composer.json. В официальном upgrade guide указаны ключевые версии:
{
"laravel/framework": "^13.0",
"laravel/boost": "^2.0",
"laravel/tinker": "^3.0",
"phpunit/phpunit": "^12.0",
"pestphp/pest": "^4.0"
}Это означает, что обновление Laravel 13 может затронуть не только runtime-код, но и тестовую инфраструктуру. Если проект использует PHPUnit, Pest, статический анализ, Laravel Pint, кастомные testing helpers или CI-скрипты, их нужно прогнать отдельно.
Также Laravel 13 поддерживает AI-assisted upgrade через Laravel Boost: после установки Boost в приложение Laravel 12 можно использовать slash command /upgrade-laravel-v13 в Claude Code, Cursor, OpenCode, Gemini или VS Code. Это не отменяет ручную проверку, но может ускорить первичную миграцию.
Сравнение Laravel 12 и Laravel 13 по ключевым изменениям
| Область | Laravel 12 | Laravel 13 |
| Минимальная версия PHP | PHP 8.2 | PHP 8.3 |
| AI-возможности | Через сторонние SDK и самописные интеграции | First-party Laravel AI SDK |
| PHP-атрибуты | Поддержка была ограниченнее | Расширенная поддержка в разных частях фреймворка |
| JSON:API | Вручную или через сторонние решения | First-party JSON:API Resources |
| Семантический поиск | В основном кастомная реализация | Нативные API для vector/semantic search-сценариев |
| Очереди | Маршрутизация чаще задавалась вручную | Queue::route(...) для маршрутизации по классу |
| Кеш | Без Cache::touch(...) | Продление TTL через Cache::touch(...) |
| CSRF/request forgery | VerifyCsrfToken | PreventRequestForgery с origin-aware проверкой |
| Апгрейд | База для текущих проектов | Мягкий major upgrade, но с проверкой зависимостей |
Миграция с Laravel 12 требует проверки нескольких зон риска
Официальная оценка времени обновления до Laravel 13 — около 10 минут, но это скорее ориентир для простых проектов. В реальном production-приложении время зависит от количества пакетов, тестов, кастомных драйверов, очередей, middleware и нестандартной инфраструктуры.
Перед обновлением стоит проверить:
- PHP 8.3+ на сервере, в CLI, Docker и CI;
- совместимость Composer-пакетов;
- тесты, особенно если используются PHPUnit/Pest;
- кастомные cache store и queue driver;
- прямые ссылки на
VerifyCsrfToken; - формы, callback-и и нестандартные request-сценарии;
- код, который хранит PHP-объекты в кеше;
- слушатели событий очередей;
- domain routes и catch-all subdomain-маршруты;
- кастомные helpers, особенно если используются старые функции вроде
array_first().
Для небольшого проекта обновление действительно может быть быстрым. Для крупного приложения лучше делать миграцию через отдельную ветку, тестовое окружение и staged deployment.
Laravel 13 особенно полезен проектам с AI, API и сложными очередями
Laravel 13 стоит рассматривать в первую очередь тем проектам, которые уже упираются в современные сценарии разработки: AI-функции, API для внешних клиентов, семантический поиск, сложные фоновые задачи, более строгая безопасность и удобная декларативная конфигурация.
Если проект — обычный CRUD-сайт на Laravel 12 без сложных интеграций, срочной необходимости обновляться в первый же день может не быть. Но с учётом сроков поддержки Laravel 12 и Laravel 13 откладывать миграцию надолго тоже не стоит.
Laravel 12 получает bug fixes до 13 августа 2026 года и security fixes до 24 февраля 2027 года. Laravel 13 получает bug fixes до Q3 2027 и security fixes до 17 марта 2028 года. Для долгоживущих проектов это весомый аргумент в пользу планового обновления.
Практический план обновления снижает риск поломки production-проекта
Оптимальный подход к переходу с Laravel 12 на Laravel 13 выглядит так:
- Зафиксировать текущее состояние проекта: ветка, бэкап базы, список пакетов, рабочий deployment.
- Обновить PHP до 8.3+ во всех окружениях.
- Обновить Laravel installer, если он используется для новых проектов.
- Изменить версии зависимостей в
composer.json. - Выполнить
composer updateв отдельной ветке. - Прогнать тесты, статический анализ и линтер.
- Проверить формы, авторизацию, CSRF, очереди, кеш, API и cron/scheduler.
- Проверить production-like окружение на staging.
- Обновить документацию проекта и deployment-инструкции.
- Выпустить обновление с возможностью быстрого rollback.
Для проектов без тестов перед миграцией стоит хотя бы вручную проверить критические пользовательские сценарии: регистрацию, вход, оплату, отправку форм, работу API, создание сущностей, очереди, email-уведомления и админку.
Laravel 13 — спокойный major release с заделом на AI-first разработку
Главное отличие Laravel 13 от Laravel 12 — не в том, что старый подход «сломали», а в том, что фреймворк заметно приблизили к современным задачам: AI, semantic search, JSON:API, декларативная настройка через атрибуты, более явное управление очередями и усиленная защита запросов.
Для новых проектов Laravel 13 выглядит логичным выбором по умолчанию. Для существующих проектов на Laravel 12 переход стоит планировать после проверки PHP 8.3, зависимостей, CSRF/request forgery middleware, кеша и очередей. Если приложение активно развивается и должно жить несколько лет, Laravel 13 даёт более длинный срок поддержки и более современную основу для дальнейшей разработки.