Laravel 12 vs Laravel 13 – кое се промени и кога да преминете

PHP версия – единствената инфраструктурна промяна

Laravel 12 работи с PHP 8.2 до 8.4. Laravel 13 повдига долната граница до PHP 8.3 и поддържа PHP 8.5.

Тази разлика изглежда малка на хартия, но на практика PHP 8.3 носи typed class constants, json_validate(), подобрения на readonly свойствата и JIT оптимизации, от които Laravel 13 се възползва вътрешно. Ако сървърът ви е на PHP 8.2 при споделен хостинг, първо трябва да проверите възможностите на хостинг плана за PHP ъпгрейд, преди да пипате framework-а. Повечето managed хостинг доставчици вече предлагат PHP 8.3 като опция в контролния панел.

Проверката е тривиална:

php -v

Ако отговорът е 8.2.x, Laravel 13 няма да тръгне.

Laravel AI SDK – от бета до production

AI SDK-то съществуваше и в Laravel 12 като бета пакет. Разликата с Laravel 13 е, че на 17 март 2026 г. пакетът получи стабилен таг едновременно с framework release-а.

Какво прави AI SDK конкретно? Дава единен интерфейс за OpenAI, Anthropic, Google Gemini, Groq и xAI. Дефинирате агенти като PHP класове с инструкции, tools и structured output schema. Цялото взаимодействие минава през Laravel queue, cache и error handling – без external HTTP библиотеки, които се бият с framework-а. Failover между доставчици работи от кутията: ако OpenAI върне rate limit, заявката автоматично отива към Anthropic.

use LaravelAiContractsAgent;
use LaravelAiPromptable;

class ArticleSummarizer implements Agent
{
    use Promptable;

    public function instructions(): string
    {
        return 'Summarize articles into two concise sentences.';
    }
}

// Извикване
$response = (new ArticleSummarizer)->prompt($article->body);

В Laravel 12 същият код работеше, но пакетът носеше beta маркер и документацията беше непълна. Практическата разлика е стабилност на API-то и гаранция за backward compatibility в рамките на major версията.

PHP Attributes навсякъде

Laravel 12 имаше ограничена поддръжка на PHP attributes. Laravel 13 разширява тази система до над 15 места във framework-а – модели, контролери, jobs, commands, listeners, mailables, notifications и broadcast events.

Старият подход за Eloquent модел:

class User extends Model
{
    protected $table = 'users';
    protected $fillable = ['name', 'email'];
    protected $hidden = ['password'];
}

Новият (опционален) подход в Laravel 13:

use IlluminateDatabaseEloquentAttributesTable;
use IlluminateDatabaseEloquentAttributesFillable;
use IlluminateDatabaseEloquentAttributesHidden;

#[Table('users')]
#[Fillable(['name', 'email'])]
#[Hidden(['password'])]
class User extends Model
{
}

За контролери атрибутите стават по-интересни – middleware и authorization се закачат директно към клас или метод чрез #[Middleware] и #[Authorize]. Job класовете получават #[Tries], #[Backoff], #[Timeout] и #[FailOnTimeout], което елиминира разпилените property декларации.

Целият синтаксис е opt-in. Нищо не се чупи, ако продължите по стария начин. Практическата полза е по-чист code review – конфигурацията стои на едно място, вместо да е разпръсната из класа.

JSON:API ресурси от кутията

Laravel 12 разчиташе на пакети като spatie/laravel-json-api за JSON:API compliant responses. Laravel 13 вгражда тази функционалност като first-party feature.

Генерирате ресурс с:

php artisan make:resource UserResource --jsonapi

Резултатът обработва автоматично resource serialization, relationship inclusion (?include=posts), sparse fieldsets (?fields[users]=name,email), links и правилен Content-Type header. За екипи, които поддържат публични API-та, това спестява часове настройка и грижа за URL структурата на endpoint-ите.

Passkey автентикация и подобрена CSRF защита

Passkeys бяха достъпни в Laravel 12 през WorkOS AuthKit варианта на starter kit-овете. В Laravel 13 WebAuthn passkey поддръжката е интегрирана директно в Fortify и всички starter kit-ове без нужда от трети пакет.

Потребителите се автентикират с Face ID, fingerprint или хардуерен ключ. Частният ключ никога не напуска устройството – phishing атаки стават невъзможни. За проекти с повишени изисквания към сигурността passkeys са сериозна стъпка напред спрямо парола + 2FA.

CSRF системата също е преработена. Новият PreventRequestForgery middleware първо проверява Sec-Fetch-Site header-а и пада до token валидация само когато origin сигналите не са налични. Ефектът за повечето приложения е невидим, но проекти с custom CSRF логика или необичайно поддомейн поведение трябва да тестват внимателно.

Queue routing и Reverb database driver

Управлението на queue topology в Laravel 12 изискваше или property-та на всеки job клас, или повтаряне на конфигурацията при всеки dispatch. Laravel 13 въвежда Queue::route() – централизиран метод за дефиниране на connection и queue по job клас:

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

Един ред в service provider-а заменя десетки разпръснати $connection и $queue декларации.

Laravel Reverb (WebSocket сървърът) вече работи с MySQL или PostgreSQL за horizontal scaling. В Laravel 12 Reverb изискваше Redis за pub/sub между инстанциите. Database driver-ът е подходящ за малки и средни приложения, които искат оптимизирана production среда с real-time функции без допълнителна инфраструктура.

Starter kit-ове и Teams

Laravel 12 представи нови starter kit-ове за React, Vue, Svelte и Livewire с TypeScript, Tailwind CSS и Inertia 2. Laravel 13 надгражда същите kit-ове с Tailwind CSS 4, dark/light/system mode, sidebar и header layout-и, passkey интеграция и – дългоочакваното – Teams функционалност.

Teams бяха част от Jetstream, но липсваха в новите starter kit-ове. Laravel 13 ги връща с по-чиста имплементация. Можете да отваряте два различни екипа в отделни табове на браузъра – нещо, което старият Jetstream не поддържаше.

Кога да ъпгрейднете

Laravel 12 получава bug fixes до август 2026 г. и security patches до февруари 2027 г. Няма спешност.

Ъпгрейдът е оправдан веднага, ако сървърът ви е на PHP 8.3+ и тестовото покритие е над 60-70%. Процедурата е: създайте branch, пуснете composer update с laravel/framework:^13.0, стартирайте test suite-а. Официалният upgrade guide посочва около 10 минути за типично приложение, защото breaking changes към application кода са нулеви. Единственият реален риск е custom cache store имплементации, request forgery edge cases и ръчно написани framework интеграции.

За автоматизиран ъпгрейд, Laravel Shift генерира PR с атомарни commit-и и струва $29 за upgrade. При големи кодови бази спестеното време обикновено оправдава цената.

# Ръчен ъпгрейд
composer require laravel/framework:^13.0
php artisan migrate
php artisan config:clear
php artisan route:clear
php artisan cache:clear

Ако проектът ви е на PHP 8.2 и хостингът не предлага 8.3, останете на Laravel 12 – той е напълно поддържан до началото на 2027 г. и нов проект може спокойно да стартира с него.

Сравнителна таблица

| Характеристика | Laravel 12 | Laravel 13 |

|–|–|–|

| Release дата | 24 февруари 2025 | 17 март 2026 |

| Минимален PHP | 8.2 | 8.3 |

| AI SDK | Бета | Стабилен |

| PHP Attributes | Ограничени | 15+ места |

| JSON:API ресурси | Чрез пакети | First-party |

| Passkeys | Чрез WorkOS AuthKit | Вграден в Fortify |

| Queue::route() | Няма | Да |

| Reverb database driver | Няма | Да |

| Teams в starter kits | Няма | Да |

| CSRF | Token-based | Origin-aware + token fallback |

| Bug fixes до | Август 2026 | Q3 2027 |

| Security fixes до | Февруари 2027 | Q1 2028 |

MCP сървър и AI-подпомогнато разработване

Laravel Boost е first-party MCP (Model Context Protocol) сървър за AI-assisted разработка. Предоставя 15 специализирани tool-а за инспекция на кодовата база, 17 000+ парчета Laravel-specific knowledge и команда /upgrade-laravel-v13, която автоматизира upgrade процеса.

Пакетът laravel/mcp позволява изграждане на MCP сървъри като Laravel приложения. Дефинирате tools като класове, групирате ги в сървъри и ги expose-вате по HTTP или stdio. Всяко съществуващо Laravel приложение може да стане AI tool provider – бизнес логиката става достъпна за AI агенти без пренаписване. За разработчици, които следят развитието на AI в уеб разработката, тази архитектура е стъпка към нов начин на изграждане на приложения.

Практическо решение

Ако стартирате нов проект и сървърът поддържа PHP 8.3, изберете Laravel 13 без колебание. AI SDK, JSON:API ресурсите и PHP Attributes правят нов код по-чист от първия ден.

Ако поддържате съществуващо Laravel 12 приложение, оценете три неща: PHP версия на production сървъра, наличие на тестове и custom framework интеграции. При покрити и трите условия, ъпгрейдът е 10-15 минутна операция с минимален риск.

Често задавани въпроси

  1. Какви са минималните PHP версии за Laravel 12 и Laravel 13?

    Laravel 12 изисква PHP 8.2 или по-нова версия. Laravel 13 повишава изискването до PHP 8.3 като минимум и поддържа PHP до версия 8.5.

  2. Колко време отнема ъпгрейдът от Laravel 12 към Laravel 13?

    Официалната документация посочва около 10 минути за повечето приложения. Laravel 13 няма breaking changes към application кода, така че основната работа е composer update и PHP ъпгрейд.

  3. Мога ли да използвам Laravel AI SDK в Laravel 12?

    Да, AI SDK беше достъпен като бета пакет в Laravel 12. В Laravel 13 той стана стабилен и production-ready, с по-добра интеграция и документация.

  4. Трябва ли да пренапиша моделите си заради PHP Attributes в Laravel 13?

    Не. PHP Attributes са изцяло опционални. Старият синтаксис с $table, $fillable, $hidden продължава да работи. Можете да мигрирате постепенно или изобщо да не го правите.

  5. До кога Laravel 12 получава security patches?

    Laravel 12 получава bug fixes до август 2026 г. и security updates до февруари 2027 г. Не е нужно да бързате с ъпгрейда, ако PHP 8.3 все още не е опция за вашия сървър.

Безплатен хостинг и домейн съществуват, но техническите ограничения – бавен TTFB, липса на SSL, чужд поддомейн и 95% uptime – ги правят неподходящи за всичко извън учебни проекти. Платеният алтернатив…

Когато работите с изображения, дизайни или лога, се използват два основни вида графични формати: векторни и растерни . И двата формата имат специфични характеристики, предимства и случаи на употреба, които…

Изграждането на успешен и устойчив бизнес често се свързва със способността на компанията да се адаптира към промените. Една от тези промени е ребрандирането. В световен мащаб всеки ден виждаме…

WooCommerce 10.5 въведе експериментална функция Cache Product Objects, която премахва повторното създаване на продуктови обекти при всяко извикване на wc_get_product(). Статията обяснява механизма, реалните ползи и подводните камъни за разработчици….
Full-Text Search индексите в HPOS превръщат бавното LIKE търсене на поръчки в MySQL MATCH…AGAINST заявки. Разликата при магазини с над 50 000 поръчки е от 4-7 секунди на под 0.5…
WooCommerce MCP е нативна интеграция на Model Context Protocol в WooCommerce, която позволява на AI клиенти като Claude и Cursor да работят директно с продукти и поръчки. Статията покрива архитектура,…