Laravel 12 Yenilikleri 2026: Streamlined Structure, Pennant, Starter Kits ve Modern PHP Rehberi

Ana SayfaHaberler › Laravel 12 Yenilikleri 2026: Streamlined Structure, ...

Laravel 12 Yenilikleri 2026: Streamlined Structure, Pennant, Starter Kits ve Modern PHP Rehberi

24.05.2026 3 görüntülenme

Laravel 12 (Laravel 12 release) 24 Şubat 2025'te yayınlandı ve Ağustos 2026'ya kadar bug fix, Şubat 2027'ye kadar güvenlik desteği alacak. Yeni sürümde Streamlined Application Structure, React/Vue/Svelte/Livewire starter kit'leri, WorkOS AuthKit entegrasyonu ve Pennant feature flag sistemi öne çıkıyor. Alesta Web ekibi olarak yüzlerce PHP projesinde Laravel kullandık; bu rehberde Laravel 12'ye geçişin neden mantıklı olduğunu, hangi yeniliklerin gerçek hayatta fark yarattığını ve alestaweb.com deneyimimizden öğrendiğimiz pratik ipuçlarını paylaşıyoruz.

Laravel 12 Genel Bakış (Laravel 12 Overview)

Laravel 12, Taylor Otwell ve ekibinin Laravel 11'deki yapısal değişiklikleri olgunlaştırdığı bir "maintenance release" sürümü. Yani çok büyük yeni özellikler yok, ama framework içindeki bağımlılıkların yenilendiği, geliştirici deneyimini iyileştiren ufak tefek pek çok ekleme var. Bu da Laravel'in olgun bir framework olduğunun göstergesi — radikal değişiklik yerine sürdürülebilir iyileştirme.

Resmi sürüm: 24 Şubat 2025. Destek takvimi:

  • Bug fixes: 13 Ağustos 2026'ya kadar
  • Security fixes: 24 Şubat 2027'ye kadar
💡 Bilgi / Info:

Laravel 12 resmi olarak LTS değildir. Laravel'in LTS politikası 2022'den itibaren değişti; artık her sürüm 2 yıl bug fix ve 3 yıl güvenlik desteği alıyor. Yani Laravel 12 üretim ortamlarınız için Şubat 2027'ye kadar güvenli (safe until February 2027).

Alesta Web olarak Laravel 11'den 12'ye geçişin son derece sorunsuz olduğunu test ettik. Çoğu uygulama için breaking change yok denecek kadar az.

Streamlined Application Structure (Sadeleştirilmiş Yapı)

Laravel 11 ile başlayan "Streamlined Application Structure" felsefesi Laravel 12'de daha da olgunlaştı. Eski sürümlerde her yeni proje açtığınızda 12+ klasör, 50+ dosya geliyordu; çoğunu hiç kullanmıyordunuz. Yeni yapıda:

Eski Yapı vs Yeni Yapı (Old vs New Structure)

# Laravel 10 (eski)
app/
  Console/
  Exceptions/
    Handler.php
  Http/
    Kernel.php
    Middleware/
  Models/
  Providers/
    AppServiceProvider.php
    AuthServiceProvider.php
    BroadcastServiceProvider.php
    EventServiceProvider.php
    RouteServiceProvider.php
config/
  (12+ config dosyası)

# Laravel 12 (yeni)
app/
  Http/
  Models/
  Providers/
    AppServiceProvider.php  (tek dosya!)
bootstrap/
  app.php  (her şey burada konfigüre)
config/
  (sadece ihtiyaç olanlar)

Yapılandırma ve yönlendirme artık bootstrap/app.php dosyasında merkezileşti. Bir middleware eklemek istediğinizde dosya açıp tek satır eklemek yetiyor:

// bootstrap/app.php
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->web(append: [
            \App\Http\Middleware\EnsureUserIsActive::class,
        ]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

Bu yaklaşımın hem yeni başlayan geliştirici için daha az "neyi nerede arayacağım" sorunu yarattığını hem de deneyimli geliştirici için daha hızlı ayar değiştirmeyi sağladığını Alesta Web projelerinde gözlemledik.

Yeni Starter Kit'ler (New Starter Kits)

Laravel 12'nin en görünür yeniliği Starter Kit'ler. Eskiden Breeze veya Jetstream kuruyordunuz; şimdi laravel new komutu doğrudan modern stack seçimi sunuyor:

Yeni Proje Açma (Creating New Project)

# React + Inertia.js
laravel new myapp --react

# Vue + Inertia.js
laravel new myapp --vue

# Svelte + Inertia.js (yeni!)
laravel new myapp --svelte

# Livewire + Volt
laravel new myapp --livewire

# Hepsinde WorkOS AuthKit ile gelen auth seçeneği var
laravel new myapp --react --workos

Her starter kit şunları içeriyor:

  • Tailwind CSS 4 (Oxide engine) yapılandırılmış
  • Vite 6 + HMR (Hot Module Replacement)
  • Auth scaffolding (login, register, password reset, email verification)
  • Dashboard sayfası
  • Profil yönetimi
  • TypeScript desteği (React/Vue/Svelte)
✅ Avantaj / Advantage:

Yeni projeyi açtıktan 30 saniye içinde auth çalışıyor. Alesta Web olarak küçük SaaS başlangıçlarında bu starter kit'ler sayesinde MVP'yi 2 günde ayağa kaldırabildiğimizi söyleyebiliriz (we can launch MVP in 2 days).

WorkOS AuthKit Entegrasyonu (WorkOS AuthKit Integration)

WorkOS, kurumsal authentication için popüler bir SaaS. Laravel 12 starter kit'lerinde direkt entegre geliyor:

  • SSO (Single Sign-On) — SAML, OIDC
  • Social login (Google, Microsoft, GitHub, Apple)
  • Magic link auth
  • Multi-factor authentication (MFA)
  • Directory sync (SCIM)

B2B SaaS yapıyorsanız bu sizin için çok büyük zaman tasarrufu. Kendi auth sisteminizi yazmaya gerek kalmıyor; WorkOS hesabı açın, API anahtarınızı .env'ye koyun, hazır.

Pennant Feature Flag Sistemi

Laravel Pennant, Laravel 10.5 ile gelen feature flag paketi. Laravel 12 ile birlikte performans iyileştirmeleri ve scope desteği geldi. Yeni özellikleri yayına almadan önce belirli kullanıcılara açmak için harika:

Pennant Kurulumu (Installation)

composer require laravel/pennant
php artisan vendor:publish --provider="Laravel\Pennant\PennantServiceProvider"
php artisan migrate

Feature Tanımlama (Define Feature)

use Laravel\Pennant\Feature;

// app/Providers/AppServiceProvider.php boot() içinde:
Feature::define('new-checkout-flow', function (User $user) {
    return match (true) {
        $user->isInternalTester() => true,
        $user->isBetaUser() => 0.5,    // %50 olasılık
        default => false,
    };
});

Kullanım (Usage)

// Blade template
@feature('new-checkout-flow')
    <x-checkout.modern />
@else
    <x-checkout.legacy />
@endfeature

// Controller
if (Feature::active('new-checkout-flow')) {
    return view('checkout.modern');
}

return view('checkout.legacy');

Bu yöntem A/B testleri, beta launch'ları ve riskli refactor'lar için Alesta Web projelerinde sürekli kullandığımız bir pattern (commonly used pattern). Pennant'tan önce kendi tablomuzu yapıyorduk; artık tek satır.

⚠️ Dikkat / Warning:

Pennant feature kararını kullanıcı session'ı boyunca cache'liyor. Yani bir feature'ı runtime'da kapatırsanız, mevcut kullanıcı oturumunu kapatıp açana kadar değişiklik görünmez. Acil "kill switch" senaryoları için Feature::forget() kullanın (use Feature::forget for emergency kill switch).

Native Health Checks (Yerleşik Sağlık Kontrolü)

Laravel 12 ile birlikte uygulamanız artık otomatik bir /up endpoint'i sunuyor. Bu Kubernetes liveness/readiness probe için, monitoring sistemleri için ve uptime checker'lar (UptimeRobot, Pingdom) için hazır:

bootstrap/app.php İçinde

->withRouting(
    web: __DIR__.'/../routes/web.php',
    health: '/up',  // bu satır health endpoint açar
)

Standart yanıt:

GET /up
HTTP 200
{ "status": "ok" }

Kubernetes deployment'ınızda doğrudan kullanabilirsiniz:

livenessProbe:
  httpGet:
    path: /up
    port: 80
  initialDelaySeconds: 30
  periodSeconds: 10
readinessProbe:
  httpGet:
    path: /up
    port: 80
  initialDelaySeconds: 5
  periodSeconds: 5

Alesta Web olarak DevOps tarafında kubernetes deployment'larda bu özelliği çok faydalı bulduk (very useful for kubernetes deployments). Eskiden custom controller yazıyorduk, artık 1 satır.

Upgrade Rehberi (Upgrade Guide): Laravel 11 → 12

11'den 12'ye geçiş için resmi upgrade rehberi Laravel Docs Upgrade'de. Pratik adımlar:

composer.json Güncelle (Update composer.json)

"require": {
    "php": "^8.2",
    "laravel/framework": "^12.0",
    "laravel/tinker": "^2.10"
}

Composer Update

composer update --with-all-dependencies
php artisan migrate
php artisan config:clear
php artisan route:clear
php artisan view:clear

Dikkat Edilecek Breaking Change'ler

  • Carbon 3 zorunlu: Eski Carbon 2 sürümü artık desteklenmiyor. diffInDays() ve benzeri metodlarda küçük davranış değişikliği var.
  • PHP 8.2+ zorunlu: PHP 8.1 ile çalışmıyor. Sunucuda PHP sürümünü kontrol edin (php -v).
  • Pail loglama: artisan pail komutu artık varsayılan. tail -f storage/logs/laravel.log yerine bunu kullanmayı öneriyoruz.
⚠️ Dikkat / Warning:

Üretim ortamına deploy etmeden önce mutlaka staging'de test edin (always test in staging first). Özellikle iş mantığınızda tarih hesaplamaları varsa Carbon 3 davranış farklılıklarına dikkat. Alesta Web olarak müşteri sitelerinde Laravel upgrade'lerini her zaman önce staging'de doğruluyoruz.

PHP 8.4 Uyumluluğu (PHP 8.4 Compatibility)

Laravel 12 PHP 8.4'ün tüm yeniliklerinden faydalanıyor:

  • Property Hooks: Model'lerde getter/setter yazımı sadeleşti
  • Asymmetric Visibility: public private(set) ile read-only properties
  • Lazy Objects: Eloquent relation'ları daha verimli yükleniyor
  • JIT Tracing: Hot path'ler ortalama %15 daha hızlı

PHP 8.4'ün yeniliklerini detaylı incelemek isterseniz PHP 8.4 Property Hooks rehberimizi okuyabilirsiniz.

📚 Kaynaklar ve Referanslar / Sources and References

Bu rehberde kullandığımız bilgiler aşağıdaki güvenilir kaynaklardan alınmıştır:

Alesta Web ekibi olarak tüm kod örneklerini gerçek Laravel 12 projelerinde test ettik (tested in real Laravel 12 projects).

✅ Laravel 12 Geçişi Tamamlandı! (Laravel 12 Migration Completed!)

Laravel 12, devrim niteliğinde değişikliklerden çok sürdürülebilir iyileştirmeler getiriyor. Streamlined structure ile yeni başlayanlar için daha az kafa karışıklığı, starter kit'lerle hızlı prototype, Pennant ile risksiz feature launch, native health checks ile DevOps kolaylığı. Alesta Web olarak Laravel 11'den 12'ye geçişi tüm aktif PHP projelerimizde tamamladık ve hiçbir kritik sorunla karşılaşmadık (no critical issues encountered).

Hızlı Özet / Quick Summary:

  • ✅ Streamlined application structure (sadeleştirilmiş yapı)
  • ✅ React/Vue/Svelte/Livewire starter kit'leri
  • ✅ WorkOS AuthKit ile enterprise auth
  • ✅ Pennant ile feature flag yönetimi
  • ✅ Native /up health endpoint
  • ✅ PHP 8.4 uyumluluğu
  • ✅ Şubat 2027'ye kadar güvenlik desteği

Faydalı Linkler / Useful Links:

© 2026 Alesta Web — alestaweb.com. Tüm hakları saklıdır.

Etiketler: Haberler