Neden bu surum farkli?
Laravel 13, 17 Mart 2026'da Laracon EU sahnesinde duyuruldu ve ayni gun yayinlandi. Taylor Otwell'in sahnedeki sozu netti: sifir breaking change. Bu, Laravel tarihinde nadir gorulen bir yaklasim. Buyuk surum numarasi artmis ama upgrade suresi cogu proje icin 10 dakikayi gecmiyor.
Minimum PHP surumu 8.3'e cikti. Bu, altyapi tarafinda yapmaniz gereken tek zorunlu degisiklik. PHP 8.3 ile gelen typed class constants, json_validate() ve JIT iyilestirmelerinden framework seviyesinde fayda goruyorsunuz. Eger hala PHP 8.2'deyseniz, once runtime'i yukseltin, sonra composer.json'da laravel/framework: ^13.0 yapin.
PHP Attributes her yere yayildi
Laravel 13'un en goze carpan ozelligi: framework genelinde 15'ten fazla noktada native PHP attribute destegi. Bu opsiyonel bir degisiklik, mevcut property-based yapilandirma aynen calismaya devam ediyor.
Eloquent modellerde $table, $fillable, $hidden gibi property'leri sinifin tepesinde attribute olarak tanimlayabiliyorsunuz:
Controller tarafinda middleware ve authorization da attribute'e tasindi:
Queue job'larinda #[Tries], #[Backoff], #[Timeout], #[FailOnTimeout] gibi attribute'ler de geldi. Biz RadKod'da bu yaklasimi ilk testlerimizde denedik: kucuk modellerde okunurluk artisi net. Ama 20+ field'li, karmasik cast ve fillable tanimlamasi olan modellerde tek satirda her seyi attribute'e sikmak okunurlugu dusurdu. Tavsiyemiz: controller middleware ve job konfigurasyonu icin hemen adapte edin, model attribute'lerini ise proje buyuklugune gore degerlendirin.
Laravel AI SDK artik stabil
Laravel 13 ile ayni gun, Laravel AI SDK beta'dan cikarip stabil olarak etiketlendi. Provider-agnostic bir arayuz sunuyor: text generation, tool-calling agent'lar, image olusturma, audio sentezi ve embedding uretimi tek bir API'den erisilebilir.
Gorsel uretimi ve embedding'ler de framework-native:
Trade-off'u net konusalim: SDK simdilik OpenAI ve Anthropic entegrasyonlarini destekliyor, provider degistirmek tek bir config degisikligi. Ama kendi fine-tuned modelinizi veya self-hosted bir LLM kullaniyorsaniz, custom driver yazmaniz gerekecek. SDK'nin retry logic'i ve error normalization'i production-grade, ancak yuksek throughput senaryolarinda queue entegrasyonunu test etmeden deploy etmeyin.
Semantik arama ve vektor sorgusu
Laravel 13, query builder'a native vektor benzerlik destegi ekledi. PostgreSQL ve pgvector extension'i ile calisiyor.
Daha once bunun icin ayri bir vektor veritabani (Pinecone, Weaviate) veya custom pgvector entegrasyonu gerekliydi. Artik Laravel'in ORM'i icinden dogrudan yapabiliyorsunuz. Kucuk ve orta olcekli projeler icin altyapi karmasikligini ciddi olcude azaltiyor. Buyuk olcekli, milyon kayitlik vektor aramalari icin hala dedicated bir vektor DB daha performansli olacaktir.
Cache::touch() ile TTL yonetimi
Basit ama etkili bir ekleme. Onceden bir cache item'in sure uzatmak icin degeri alip tekrar yazmak gerekiyordu: iki round-trip. Yeni Cache::touch() metodu degeri okumadan sadece TTL'i uzatiyor:
Redis'te tek bir EXPIRE komutu, Memcached'de native TOUCH, database driver'da tek bir UPDATE. Sliding session, rate limiting, aktif dashboard verisi gibi her istekte TTL uzatan senaryolarda gereksiz veri transferini sifirliyor. Goz onunde olmayan ama production'da fark yaratan turden bir iyilestirme.
Reverb artik Redis olmadan yatay olcekleniyor
Laravel Reverb, framework'un first-party WebSocket sunucusu. Laravel 13'e kadar yatay olcekleme icin Redis zorunluydu. Artik database driver ile mevcut MySQL veya PostgreSQL'inizi kullanabiliyorsunuz:
Kucuk ve orta olcekli projeler icin bu buyuk bir rahatlama: sadece WebSocket icin ayri bir Redis instance provizyon etmenize gerek yok. Canli bildirimler, chat, collaborative editing gibi ozellikler mevcut veritabaniniz uzerinden calisabiliyor. Binlerce es zamanli WebSocket baglantisi olan yuksek trafik uygulamalarinda Redis hala onerilir.
Diger dikkat cekici degisiklikler
JSON:API Resources
Laravel artik JSON:API spesifikasyonuna uyumlu resource siniflarini first-party olarak destekliyor. Serialization, relationship inclusion, sparse fieldsets ve uyumlu response header'lari otomatik. API-first projeler icin daha once elle veya ucuncu parti paketlerle yapilan islerin buyuk bolumu artik framework icinde.
Queue::route() ile merkezi kuyruk yonetimi
Her job sinifinda queue ve connection property'si tanimlamak yerine, tek bir noktadan yonetebiliyorsunuz:
Altyapi concern'lerini is mantigi kodundan ayiriyor. Kuyruk topolojisi degistiginde her job dosyasini acmak yerine service provider'dan yonetiyorsunuz.
PreventRequestForgery
CSRF middleware VerifyCsrfToken'dan PreventRequestForgery'ye yeniden adlandirildi ve Sec-Fetch-Site header'i uzerinden origin-aware dogrulama eklendi. Token-based CSRF korumasinin ustune ikinci bir katman. Eski alias'lar calismaya devam ediyor ama custom CSRF flow'lariniz varsa test edin.
Starter Kit'lerde passkey ve team destegi
WebAuthn tabanli passkey authentication artik starter kit'lere ve Laravel Fortify'a entegre. Face ID, parmak izi veya hardware key ile giris yapilabiliyor. Eski Jetstream'deki team fonksiyonalitesi de yeni starter kit'lere farkli bir implementasyonla geri geldi. Artik ayni anda farkli tarayici sekmelerinde farkli takimlar arasinda gecis yapilabiliyor.
Upgrade stratejisi
Upgrade guide'daki uc kritik noktaya dikkat edin: PreventRequestForgery origin konfigurasyonu, cache serializable_classes ayari (varsayilan olarak false geldi, deserialization saldirilarini engelliyor) ve cache/session prefix degisiklikleri. Eger custom cache store implementation'iniz varsa, yeni touch metodunu eklemeniz gerekiyor.
Ekip olarak tavsiyemiz: branch acin, composer update calistirin, test suite'inizi kosuturun. Laravel Shift mekanik degisikliklerin buyuk bolumunu otomatize ediyor, buyuk codebase'lerde zaman kazandiriyor. Major ekosistem paketleri (Livewire, Inertia.js, Filament, Spatie) Laravel 13 ile uyumlu.
Biz RadKod'da aktif projelerimizi Laracon EU duyurusundan hemen sonra staging ortaminda test etmeye basladik. PHP 8.3 gereksinimi disinda gercek anlamda sifir sorunla karsilastik. Yeni projelerde AI SDK ve vektor arama entegrasyonlarini ilk sprint'ten itibaren kullanmaya basliyoruz. Eger hala Laravel 12'deyseniz ve test coverage'iniz makul seviyedeyse, simdi upgrade etmenin tam zamani.