<

Laravel 13'te Kuyruk Yönlendirme ve Attribute Kullanımı: Saha Notları

Laravel 13, 17 Mart 2026'da yayınlandı. PHP 8.3–8.5 aralığını destekliyor, hata düzeltmeleri 2027'nin üçüncü çeyreğine, güvenlik yamaları 17 Mart 2028'e kadar sürüyor. Kırıcı değişikliklerin az tutulduğu bir sürüm; biz de birkaç müşteri projesinde yükseltmeyi beklediğimizden daha sorunsuz tamamladık. Aşağıda gerçekten işimize yarayan üç başlık var.

Kuyruk yönlendirmeyi merkeze almak

Önceden bir işin hangi bağlantıda ve hangi kuyrukta çalışacağı ya iş sınıfının içinde ya da her dispatch çağrısında dağınık biçimde duruyordu. Laravel 13'te bu kural merkezi olarak tanımlanabiliyor:

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

Sahada bunun değeri şu: kuyruk topolojisi artık altyapı kararı olarak tek yerde duruyor. Bir işi "yavaş" kuyruğa taşımak istediğinizde iş sınıfını değiştirmiyor, dolayısıyla o sınıfın testlerini yeniden yazmıyorsunuz. Uzun süren rapor üretimi ile kritik bildirim gönderiminin aynı worker havuzunu paylaştığı klasik sorunu, tek dosyada çözebiliyorsunuz.

Kuyruk yönlendirme kuralının iş sınıflarında dağınık durması ile Queue::route ile merkezi tanımlanmasının karşılaştırması.
Kuyruk topolojisi artık altyapı kararı olarak tek yerde.

Attribute'lar dağınıklığı azaltıyor

Kontrolcü ve iş sınıfları için gelen yeni attribute'lar — #[Middleware], #[Authorize], #[Tries], #[Backoff], #[Timeout], #[FailOnTimeout] — özellikle büyük admin panellerinde rota dosyasını okunabilir hale getiriyor. Deneyimimiz şu yönde: yetkilendirmeyi kontrolcünün üstüne taşımak iyi fikir, çünkü bir yöntemi okuyan geliştirici kimin erişebildiğini aynı ekranda görüyor. Ama rota dosyasını tamamen boşaltmaya çalışmayın; hangi URL'nin nereye gittiğini tek bakışta görebilmek hâlâ değerli.

Kuyruk tarafında #[Tries] ve #[Backoff] ise özellikle üçüncü parti API çağıran işlerde faydalı. Denemeleri ve bekleme aralığını iş sınıfının başına yazmak, o işin dış dünyayla nasıl konuştuğunu belgeleyen bir yorumdan daha kalıcı oluyor.

AI SDK ve vektör aramayı ne zaman kullanmalı

Laravel 13'ün en çok konuşulan tarafı ilk taraf AI SDK'sı ve PostgreSQL + pgvector ile gelen yerel vektör sorguları:

DB::table('documents')->whereVectorSimilarTo('embedding', 'Napa Valley'deki en iyi üzüm bağları')->limit(10)->get();

Etkileyici, ama dürüst olalım: bu özellikler her projeye gerekmiyor. Kurumsal bir doküman arşivinde anlamsal arama istiyorsanız yerinde bir seçim. Buna karşılık 20 bin kayıtlı bir ürün kataloğunda önce düzgün bir tam metin indeksi kurun; vektör arama, altyapı maliyetini ve operasyonel karmaşıklığı beraberinde getiriyor.

Yükseltme sırası

  • Önce PHP'yi 8.3'e çekin; Laravel 13 bunu zorunlu tutuyor.
  • CSRF korumasını kullanan özel middleware'lerinizi yeni PreventRequestForgery davranışına karşı test edin; origin bazlı doğrulama eklendi.
  • Kuyruk yapılandırmasını Queue::route ile tek dosyaya toplayın, sonra iş sınıflarındaki eski tanımları kaldırın.
  • Yükseltmeyi mutlaka önce bir hazırlık (staging) ortamında, gerçek veriyle çalıştırın.
Laravel 13 yükseltme sırası: PHP sürümü, CSRF middleware testi, kuyruk yapılandırması ve staging denemesi.
Yükseltme planını sırayla ilerletmek riski azaltır.

JSON:API kaynakları: mobil ekip için iyi haber

Laravel 13'ün mobil tarafa dokunan özelliği JSON:API uyumlu kaynak desteği. İlişkiler, seyrek alan kümeleri (sparse fieldsets) ve doğru başlıklar çerçevenin içinde geliyor. Flutter tarafında API tüketen bir ekip için bunun anlamı, her uçta farklı bir yanıt biçimiyle uğraşmamak.

Ama tek uyarı: bir standarda geçmeye karar verirseniz tamamına geçin. Uçların yarısı JSON:API, yarısı eski özel biçim olan bir API, hiç standart olmayan bir API'den daha zor tüketiliyor. Mevcut projelerde bizim tercihimiz, yeni modülleri yeni biçimde yazmak ve eski uçları bir sürüm numarasının (v1) arkasında dondurmak; karışık biçimle yaşamak yerine iki net sürümle yaşamak.

Bir de kırılmayan şeyleri kontrol edin

Sürüm notları kırıcı değişiklikleri listeler, ama sessiz davranış değişikliklerini her zaman yakalamıyor. Yükseltme sonrası mutlaka bakılacak üç yer: tarih/saat biçimlendirmesinin API yanıtlarında aynı kalıp kalmadığı, doğrulama hata mesajlarının yapısı (mobil uygulama bunları ayrıştırıyorsa kırılabilir) ve kuyruk işlerinin yeniden deneme davranışı. Bu üçünü bir uçtan uca test turuyla doğrulamak, geri alma kararı vermek zorunda kalmaktan çok daha ucuz.

Elinizde eski bir Laravel sürümünde duran ve büyümekte olan bir API veya panel varsa, yükseltme planını çıkarmak genellikle bir günlük bir iş. İletişim sayfamız üzerinden yazın, mevcut yapınıza bakıp riskli noktaları önceden işaretleyelim.

📅 Yayınlanma:  ·  Yakup Zengin