Laravel 11 Yenilikleri: Modern PHP Geliştiricileri İçin Kapsamlı Rehber
Laravel ekosistemi, uzun yıllardır PHP dünyasının en çok tercih edilen framework'ü olma unvanını koruyor. Taylor Otwell ve ekibinin kararlı çalışmaları sayesinde her yıl yayınlanan yeni sürümler, geliştiricilerin iş akışını daha da kolaylaştırıyor. Laravel 11 ise bu geleneği bozmayarak, sadeleştirilmiş bir iskelet yapısı, daha akıllı varsayılan ayarlar ve modern PHP özelliklerine tam uyum ile dikkat çekiyor.
Bu rehberde, Laravel 11'in getirdiği en önemli yenilikleri, bunların pratik kullanım alanlarını ve projelerinize nasıl entegre edebileceğinizi ele alacağız. İster mevcut bir Laravel projesini yükseltmeyi planlıyor olun, ister sıfırdan başlıyor olun, bu yazı size yol haritası sunacak.
Laravel 11'in Genel Felsefesi
Laravel 11, "daha az kod, daha fazla netlik" mottosuyla geldi. Önceki sürümlerde projeye dahil edilen ancak çoğu geliştiricinin hiç dokunmadığı onlarca yapılandırma dosyası ve varsayılan sınıf artık iskeletten çıkarıldı. Bu değişiklik, yeni başlayanlar için öğrenme eğrisini düşürürken, deneyimli geliştiriciler için de projeleri daha temiz tutma imkânı sağlıyor.
Framework'ün minimum PHP sürüm gereksinimi ise PHP 8.2 oldu. Bu, readonly sınıflar, DNF tipleri ve daha performanslı JIT derlemesi gibi modern özelliklerden doğrudan yararlanabileceğiniz anlamına geliyor.
Sadeleştirilmiş Uygulama İskeleti
Laravel 11'in en göze çarpan değişikliği, uygulama iskeletinin ciddi oranda sadeleştirilmesi. Önceki sürümlerde app/Http/Middleware, app/Exceptions, app/Providers gibi dizinlerde bulunan onlarca dosya artık varsayılan olarak oluşturulmuyor.
Neler Kaldırıldı?
app/Http/Middlewarealtındaki standart middleware sınıfları (örneğinAuthenticate,EncryptCookies)app/Exceptions/Handler.phpdosyasıapp/ProvidersaltındakiRouteServiceProvider,EventServiceProvidergibi sınıflarconfigdizinindeki onlarca yapılandırma dosyası (sadece ihtiyaç duyulanlar kalıyor)
Bu dosyalar tamamen kaybolmadı; framework içinde varsayılan olarak tanımlı geliyorlar. İhtiyaç duyduğunuzda php artisan make:middleware veya php artisan vendor:publish komutlarıyla bunları projenize ekleyebiliyorsunuz.
Neden Bu Değişiklik Önemli?
Kod tabanının küçülmesi birkaç açıdan fayda sağlıyor:
- Daha hızlı öğrenme eğrisi: Yeni geliştiriciler, projede ne olduğunu anlamak için daha az dosya inceliyor.
- Daha az bakım yükü: Framework güncellemelerinde değişmeyen dosyaları takip etmek zorunda kalmıyorsunuz.
- Daha net sorumluluklar: Uygulama kodu ile framework kodu arasındaki sınır belirginleşiyor.
Yeni bootstrap/app.php Yapısı
Laravel 11'de uygulamanın tüm yapılandırması artık bootstrap/app.php dosyası üzerinden yönetiliyor. Bu dosya, middleware, exception handling, routing ve servis sağlayıcı kaydı gibi işlemleri tek bir noktadan yönetmenize olanak tanıyor.
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
\App\Http\Middleware\EnsureUserIsSubscribed::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {
$exceptions->report(function (Throwable $e) {
// Özel hata raporlama
});
})
->create();
Bu yapı, önceki sürümlerdeki Kernel.php dosyalarının yerini alıyor ve akıcı (fluent) API sayesinde okunabilirliği artırıyor.
Laravel Reverb: Gerçek Zamanlı WebSocket Sunucusu
Laravel 11 ile birlikte tanıtılan en heyecan verici yeniliklerden biri Laravel Reverb. Bu, framework'e dahili olarak gelen, yüksek performanslı bir WebSocket sunucusu. Daha önce Pusher veya Soketi gibi üçüncü parti çözümlere bağımlı olan gerçek zamanlı özellikler, artık doğrudan Laravel ekosistemi içinde çalıştırılabiliyor.
Reverb'ün Avantajları
- Ek maliyet yok: Pusher gibi servislerin aylık ücretlerinden kurtuluyorsunuz.
- Ölçeklenebilirlik: Redis üzerinden yatay olarak ölçeklenebiliyor.
- Basit kurulum:
php artisan install:broadcastingkomutu ile saniyeler içinde yapılandırılıyor. - Laravel Echo ile uyum: Mevcut broadcasting altyapınızı değiştirmeden kullanabiliyorsunuz.
php artisan install:broadcasting
php artisan reverb:start
Bu iki komutla birlikte, gerçek zamanlı bildirim, sohbet veya canlı veri akışı gibi özellikleri kendi sunucunuzda barındırabilirsiniz.
Sağlık Kontrolü (Health Check) Endpoint'i
Laravel 11, her yeni uygulamaya otomatik olarak bir /up endpoint'i ekliyor. Bu endpoint, uygulamanın ayakta olup olmadığını kontrol etmek için kullanılıyor ve özellikle Kubernetes, Laravel Forge veya AWS ECS gibi ortamlarda load balancer sağlık kontrolü için ideal.
->withRouting(
health: '/up',
)
Varsayılan olarak basit bir 200 yanıtı dönen bu endpoint'i, veritabanı bağlantısı veya cache erişimi gibi kontrollerle genişletebilirsiniz.
Graceful Shutdown ve Concurrency İyileştirmeleri
Laravel 11, uzun süre çalışan işlemler (queue worker'lar, Octane sunucuları) için graceful shutdown desteği getirdi. Bu sayede uygulamanız kapatılırken devam eden isteklerin tamamlanması bekleniyor ve kullanıcılar hata almıyor. Ayrıca Concurrency facade'ı üzerinden paralel işlemler daha güvenli şekilde yönetilebiliyor.
Yeni Artisan Komutları ve Geliştirici Deneyimi
Laravel 11, geliştirici deneyimini iyileştiren birkaç yeni Artisan komutu getirdi:
php artisan make:class— basit sınıf oluşturmaphp artisan make:enum— enum sınıfı oluşturmaphp artisan make:interface— interface oluşturmaphp artisan make:trait— trait oluşturmaphp artisan install:api— API iskeletini tek komutla kurmaphp artisan install:broadcasting— broadcasting altyapısını kurma
Bu komutlar, özellikle yeni başlayanlar için dosya oluşturma sürecini standartlaştırıyor.
Model Cast'lerinde İyileştirmeler
Laravel 11, Eloquent model cast'lerinde daha temiz bir sözdizimi sunuyor. Artık cast tanımlamalarını metod üzerinden yapmak mümkün:
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'options' => AsCollection::class,
];
}
Bu yaklaşım, cast mantığını dinamik olarak üretmeniz gerektiğinde çok daha esnek bir yapı sağlıyor.
Prompt Validation: Kullanıcı Girdilerinde Yeni Yaklaşım
Laravel Prompts paketi ile gelen validate metodu, konsol uygulamalarında kullanıcı girdilerini doğrulamak için pratik bir yol sunuyor. Laravel 11 ile bu özellik daha da olgunlaştı ve Artisan komutlarınızda profesyonel bir kullanıcı deneyimi oluşturmanıza yardımcı oluyor.
$email = text(
label: 'E-posta adresiniz nedir?',
validate: fn (string $value) => match (true) {
! filter_var($value, FILTER_VALIDATE_EMAIL) => 'Geçerli bir e-posta girin.',
default => null,
}
);
Limit ve Throttle İyileştirmeleri
Rate limiting yapılandırması da sadeleştirildi. Artık limit tanımlarını bootstrap/app.php içinde veya doğrudan route üzerinde daha okunabilir şekilde yapabiliyorsunuz. Bu, özellikle API projelerinde güvenlik ve kaynak koruma açısından önemli.
Eski Sürümlerden Yükseltme: Nelere Dikkat Etmeli?
Laravel 10'dan 11'e yükseltme yaparken dikkat etmeniz gereken birkaç nokta var:
- PHP sürümü: Minimum PHP 8.2 gereksinimini karşıladığınızdan emin olun.
- İskelet değişiklikleri: Kaldırılan dosyalar (Kernel.php, Handler.php vb.) hâlâ projenizde varsa, bunları
bootstrap/app.phpyapısına taşımanız gerekebilir. - Üçüncü parti paketler: Kullandığınız paketlerin Laravel 11 uyumluluğunu kontrol edin.
- Testler: Yükseltme sonrası tüm test suite'inizi çalıştırarak regresyon olup olmadığını doğrulayın.
Laravel ekibi, resmi yükseltme rehberini (laravel.com/docs/11.x/upgrade) düzenli olarak güncelliyor; bu kaynağı mutlaka inceleyin.
Laravel 11 Kime Uygun?
Laravel 11, özellikle şu profillerdeki geliştiriciler için büyük avantaj sağlıyor:
- Yeni projelere başlayanlar: Sade iskelet, öğrenme sürecini hızlandırıyor.
- Gerçek zamanlı özellikler geliştirenler: Reverb sayesinde ek servis maliyeti ortadan kalkıyor.
- API ağırlıklı projeler yürütenler:
install:apikomutu ve sadeleştirilmiş yapılandırma büyük kolaylık sağlıyor. - Modern PHP özelliklerini kullanmak isteyenler: PHP 8.2+ zorunluluğu, en güncel dil özelliklerinden yararlanmanıza imkân tanıyor.
Sonuç
Laravel 11, framework'ün olgunluk seviyesini bir üst basamağa taşıyor. Sadeleştirilmiş iskelet yapısı, yerleşik WebSocket desteği (Reverb), sağlık kontrolü endpoint'i ve geliştirici deneyimine yapılan yatırımlar, bu sürümü uzun vadeli projeler için cazip bir tercih hâline getiriyor.
Framework'ün felsefesi net: gereksiz karmaşıklığı ortadan kaldır, geliştiricinin işine odaklanmasını sağla. Laravel 11 bu felsefeyi tutarlı biçimde uyguluyor ve PHP ekosistemindeki lider konumunu pekiştiriyor.
İster yeni bir projeye başlıyor olun, ister mevcut bir uygulamayı yükseltmeyi planlıyor olun, Laravel 11'in getirdiği yenilikleri anlamak, önümüzdeki yıllarda sağlam ve sürdürülebilir uygulamalar geliştirmeniz için sağlam bir temel oluşturacaktır.