Laravel 12: sürüm ritmi olgunlaşırken
Laravel 12 ile gelen değişiklikleri ve framework'ün yıllık sürüm temposunun proje planlamasına etkisini değerlendiriyorum.
Laravel 12, Şubat 2025’te yayımlandı. Açıkçası sürümü beklerken büyük bir sürpriz beklentisi içinde değildim ve yanılmadım. Bu bir şikâyet değil, bir tespit — olgun bir framework’ün olgun bir sürümü böyle görünür.
Yıllar önce her Laravel sürümü bir heyecan dalgası yaratırdı. Laravel 5 dizin yapısını baştan yazdı, Laravel 6 LTS (Long-Term Support) politikasını getirdi, Laravel 8 factory’leri yeniden tasarladı. Şimdi o çağ geride. Şu anda yaşadığımız dönem farklı bir şey: öngörülebilirlik.
Yıllık sürüm temposu ve ne anlama gelir
Laravel her yıl Şubat ayında yeni bir ana sürüm yayımlıyor. Bu tempo, 2022’den bu yana tutarlı şekilde devam ediyor. Bir proje yöneticisi ya da ekip lideri olarak bunu değerli buluyorum çünkü planlama yapılabiliyor.
Her ana sürüm iki yıl destek alıyor: bir yıl aktif destek, bir yıl güvenlik düzeltmeleri. Bu, Laravel 11’i hâlâ kullanan bir projenin 2026’ya kadar güvenlik güncellemesi alacağı anlamına geliyor. Paniklemeden, planlı bir takvimde güncelleme yapabiliyorsunuz.
Karşılaştırma için: PHP dünyasında bu tür bir öngörülebilirlik herkesin hakkı değil. Bazı kütüphaneler yıllarca güncellenmezken bazıları altı ayda bir breaking change çıkarıyor. Laravel’in bu disiplinli temposu, çerçeveye bağımlı kod tabanlarının ömrünü uzatıyor.
Laravel 12’de ne geldi
Sürüm notlarına baktığımda öne çıkan birkaç değişiklik var. Bunların büyük bölümü kırıcı değişiklik değil, iyileştirme niteliğinde.
Starter kit’ler yenilendi. Artık Livewire ve Inertia (React/Vue) seçenekleri daha modüler ve güncel. Yeni bir proje başlatırken bu kitleri seçmek için bir neden daha oluştu.
once() yardımcı fonksiyonu. Bir closure’ı tek bir kez çalıştırıp sonucunu önbelleğe alan bu yardımcı, başlangıçta küçük görünüyor ama sık başvurduğum kalıplardan birini temizliyor. Aynı isteğin farklı noktalarında tekrar hesaplanmasını önlemek için daha önce statik değişken ya da özel çözümler yazıyordum.
$result = once(fn () => someExpensiveComputation());
Bağımlılıklar güncellendi. PHP 8.2 minimum gereksinim oldu. Bu beklenen bir adım; her sürüm EOL (End of Life) yaklaşan PHP sürümleri için desteği keserek ekibi ve kullanıcıları ileriye itiyor.
Güncelleme deneyimi
Laravel 11’den 12’ye geçişi bir projede denedim. composer require laravel/framework:^12.0 çalıştırdıktan sonra çıkan uyumsuzlukların büyük bölümü üçüncü parti paketlerden kaynaklandı; Laravel’in kendisinden değil.
Bu ayrımı not etmek gerekiyor: framework güncelleme maliyeti çoğu zaman framework’ün kendisi değil, ekosistem uyumudur. Popüler paketler genellikle birkaç gün içinde güncelleniyor. Daha az aktif paketlerde bazen haftalarca beklemek ya da fork almak gerekebiliyor.
composer require laravel/framework:^12.0 --update-with-dependencies
Büyük bir uygulama için bu güncellemeyi bir sprint’e sığdırmak mümkün. Küçük bir proje için ise tek oturumda tamamlanabilir bir iş.
Sürüm ritmi ve uzun vadeli karar
Bir framework seçerken sürüm ritmini artık ilk kriterler arasında değerlendiriyorum. Hızlı evrim her zaman iyi değil; bazen öngörülebilirlik daha değerli. Laravel bu dengeyi son birkaç yılda iyi kurdu.
Yeni bir proje başlatırken Laravel 12 ile başlamak mantıklı. Mevcut Laravel 11 projesinde acele etmek gerekmiyor, ama geçiş yol haritasını şimdiden çıkarmak iyi bir pratik. Framework’ün yayım takvimini takip etmek, teknik borç biriktirmemeye karşı en basit savunmalardan biri.