Laravel 9: yeni sürüm ritmi ve PHP 8 uyumu
Laravel 9 ile yerleşen yıllık sürüm temposunun proje planlamasına etkisi ve PHP 8 uyumunun kod tabanına yansımaları.
Laravel 9, Şubat 2022’de yayımlandı. Gecikmeleri olan bir sürümdü — başlangıçta 2021 sonunda beklendi, sonra ötelendi. Ama sürümü ilginç kılan gecikme değil, bu sürümle birlikte netleşen bir ritim: artık her yıl Şubat ayında yeni bir major sürüm.
Bu yazı Laravel 9’un getirdiklerinden çok, yıllık sürüm temposunun proje yönetimine ne anlama geldiğini anlatıyor. Özellik listesi yeterince belgelendi; asıl konuşulması gereken bu ritmin pratikte nasıl karşılandığı.
Yıllık sürüm ritmi ne anlama geliyor
Laravel, Symfony’nin oluşturduğu temeli benimserken uzun süredir devam eden 6 aylık minor sürüm modeli yerini daha sezgisel bir yapıya bıraktı. Her yıl Şubat ayında major sürüm, her major sürüm için 18 aylık aktif destek ve ardından 12 aylık güvenlik destek penceresi.
Bu ritmin proje planlamasına etkisi somut: bir projeye başlarken yalnızca “hangi Laravel sürümü” değil, “o sürümün destek ömrü bu projenin ömrüyle örtüşüyor mu” sorusunu sormak gerekiyor. Laravel 9’un aktif desteği 2023’e kadar uzanıyor. Uzun ömürlü bir ürün için yeterli, kısa dönem bir proje için zaten sorun yok.
Ekipler için de bir standartlaşma anlamı var. “Framework sürümünü ne zaman güncelleyelim?” sorusu artık daha net: yeni major çıktı, bir sonraki büyük refactor dönemi yakında değerlendiririz. Rastgele değil, planlanmış.
PHP 8.0 minimum şartının pratiği
Laravel 9, PHP 7 desteğini tamamen bıraktı. Minimum PHP 8.0. Bu kararın arka planında Symfony 6 bağımlılığı var; Symfony 6 da PHP 8 gerektiriyor. Dolayısıyla bu sürüme geçmek isteyenlerin altyapı güncellemesi yapması zorunlu hale geldi.
PHP 8.0 ile gelen araçlar — match ifadesi, named arguments, union types, nullsafe operatör — kod yazma biçimini değiştiriyor. Laravel 9’un iç kodu bu araçları aktif kullanıyor. Kendi kod tabanınıza taşımak için acele etmenize gerek yok ama framework’ün altındaki php koduna baktığınızda bu araçların ne kadar yaygınlaştığını görüyorsunuz.
Pratik bir örnek: Laravel 9’da Route::controller() desteği eklendi. Aynı controller’ı defalarca yazmak yerine:
use App\Http\Controllers\OrderController;
Route::controller(OrderController::class)->group(function () {
Route::get('/orders', 'index');
Route::post('/orders', 'store');
Route::get('/orders/{id}', 'show');
});
Küçük bir şeker ama büyük route dosyalarında tekrarı azaltıyor.
Bootstrap dosyasının değişimi
Laravel 9 ile birlikte bootstrap/app.php daha temiz bir yapıya kavuştu. Tek başına bunu tartışmak abartı olur, ama bu değişiklik Laravel 11’deki daha radikal sadeleşmenin habercisi. Çerçevenin uzun vadeli yönü belli: daha az boilerplate kod, daha açık yapılandırma.
Sürüm geçişinin maliyeti
Laravel 9’a geçiş pratikte çoğu proje için yönetilebilir. Büyük değişiklik PHP sürümü; eğer zaten PHP 8’deyseyiniz sürtünme az. php artisan migrate ve composer update ardından test takımını çalıştırmak genellikle yeterli başlangıç noktası.
Dikkat edilmesi gereken: kendi paketleriniz veya topluluğun paketleri. Ekosistemde büyük paketler genellikle hızla güncelleniyor ama niş bağımlılıklar için bir kontrol yapmak şart. composer outdated çıktısını ciddi almak gerekiyor.
Sürüm takibini alışkanlık haline getirmek
Yıllık sürüm ritmi bize bir şey sunuyor: öngörülebilirlik. Şubat geldi, notları oku, neyin değiştiğini anla, upgrade rehberini tara. Bu bir sprint değil, saatlik bir yatırım.
Sürüm notlarını okumayı alışkanlık haline getirmeyen geliştiricilerin büyük sürüm geçişlerinde karşılaştığı sürprizler tamamen önlenebilir. Framework’ün gideceği yer çoğu zaman önceden söyleniyor; okumak yeterli.
Laravel 9 özellikleri açısından devrimci bir sürüm değil. Ama ritim açısından bir olgunlaşma noktası. Bu ritme uyum sağlamak, proje ömrü boyunca framework’ü güncel tutmanın en az dirençli yolu.