Laravel 12 Yenilikleri: Starter Kits, WorkOS AuthKit, Failover Queue Rehberi (2026)

01.02.2026 12:43 Haber

PHP'nin en popüler framework'ü yeni versiyonuyla karşınızda! Laravel 12, Şubat 2025'te yayınlandı ve 2026'da projelerinizi güçlendirmeye hazır. Yeni starter kit'ler, WorkOS AuthKit entegrasyonu, PostgreSQL 18 desteği ve daha fazlası. Alesta Web olarak bu kapsamlı rehberde (comprehensive guide) tüm yenilikleri ve upgrade adımlarını anlatıyoruz!

1. Laravel 12 Özet (Laravel 12 Overview)

Laravel 12, "maintenance release" olarak nitelendiriliyor. Yani radikal değişiklikler yerine, mevcut özelliklerin iyileştirilmesi ve bağımlılıkların güncellenmesi odağında. Çoğu Laravel uygulaması kod değişikliği gerektirmeden Laravel 12'ye yükseltilebilir!

? Bilgi / Info:

Laravel 12, 24 Şubat 2025'te yayınlandı (released February 24, 2025). Bug fix desteği 2026 boyunca, güvenlik güncellemeleri 2027'ye kadar devam edecek. Alesta Web olarak yeni projelerde Laravel 12 kullanmanızı öneriyoruz.

Laravel 12 Öne Çıkan Özellikler (Highlights)

  • Yeni Starter Kits: React, Vue ve Livewire için modern başlangıç şablonları
  • WorkOS AuthKit: Passkeys, SSO ve social login entegrasyonu
  • Failover Queue Driver: Otomatik queue failover desteği
  • PostgreSQL 18 Virtual Columns: virtualAs modifier güncellemesi
  • Carbon 3: Tarih/saat işlemleri için yeni Carbon sürümü
  • PHP 8.5 Desteği: En son PHP sürümü ile uyumluluk
Özellik / Feature Laravel 11 Laravel 12
PHP Minimum 8.2 8.2 (8.5 önerilir)
Carbon Version Carbon 2/3 Sadece Carbon 3
Starter Kits Breeze, Jetstream + WorkOS AuthKit
Queue Failover Manuel Otomatik
Bug Fix Desteği 2025 2026

2. Yeni Starter Kits

Laravel 12 ile birlikte starter kit'ler tamamen yenilendi. Alesta Web olarak yeni kit'leri inceledik ve çok beğendik!

2.1 React Starter Kit

React Starter Kit Kurulumu (Installation)

# Yeni Laravel projesi oluştur
laravel new my-app

# React starter kit seç
# Kurulum sırasında seçenekler sunulacak:
# - React (Inertia.js)
# - Vue (Inertia.js)
# - Livewire
# - API Only

# React seçildiğinde şunlar dahil:
# - Inertia.js
# - React 19
# - TypeScript
# - Tailwind CSS
# - shadcn/ui components

2.2 Vue Starter Kit

Vue Starter Kit İçeriği (Contents)

Vue Starter Kit şunları içerir:
├── Inertia.js (SPA deneyimi)
├── Vue 3.6 (Composition API)
├── TypeScript (type safety)
├── Tailwind CSS 4.0
├── shadcn-vue components
└── Vite (super fast HMR)

# Kurulum:
laravel new my-vue-app --stack=vue

# Veya interaktif kurulum:
laravel new my-vue-app
# Sonra Vue seçin

2.3 Livewire Starter Kit

Livewire Starter Kit

# Livewire için:
laravel new my-livewire-app --stack=livewire

# Livewire 3 ile gelir:
# - Full-page components
# - Alpine.js entegrasyonu
# - Tailwind CSS
# - Volt syntax (opsiyonel)
✅ Alesta Web Tavsiyesi / Recommendation:

Yeni projeler için React veya Vue starter kit'leri öneriyoruz. Inertia.js ile SPA deneyimi, Laravel'in güçlü backend'i ile birleşiyor. alestaweb.com projelerinde Vue stack kullanıyoruz.

3. WorkOS AuthKit Entegrasyonu (WorkOS AuthKit Integration)

Laravel 12'nin en ilginç yeniliklerinden biri WorkOS AuthKit entegrasyonu. Passkeys, SSO ve social login artık çok kolay!

3.1 WorkOS AuthKit Nedir?

WorkOS AuthKit, enterprise-grade authentication çözümüdür. Laravel 12 ile birlikte starter kit'lerin bir parçası olarak sunuluyor.

  • Passkeys: Şifresiz giriş (passwordless authentication)
  • SSO: SAML, OIDC ile Single Sign-On
  • Social Login: Google, GitHub, Microsoft vb.
  • MFA: Multi-factor authentication
  • User Management: Kullanıcı yönetim paneli

WorkOS AuthKit Kurulumu (Setup)

# Starter kit kurulumunda WorkOS seçeneğini işaretleyin
laravel new my-app

# Kurulum sihirbazında:
# ? Would you like to install WorkOS AuthKit? (yes/no)
# > yes

# .env dosyasına WorkOS credentials ekleyin:
WORKOS_CLIENT_ID=your_client_id
WORKOS_API_KEY=your_api_key
WORKOS_REDIRECT_URI=https://your-app.com/callback

# Routes otomatik olarak eklenir:
# /login - Login sayfası
# /login/sso - SSO redirect
# /callback - OAuth callback

Passkeys Kullanımı (Using Passkeys)

<?php
// routes/web.php - Otomatik olarak eklenir

use WorkOS\AuthKit\Facades\AuthKit;

// Passkey registration
Route::post('/passkeys/register', function (Request $request) {
    $passkey = AuthKit::registerPasskey($request->user());
    return response()->json($passkey);
});

// Passkey authentication
Route::post('/passkeys/authenticate', function (Request $request) {
    $user = AuthKit::authenticateWithPasskey($request->credential);
    Auth::login($user);
    return redirect('/dashboard');
});
? Alesta Web Notu / Note:

WorkOS AuthKit, küçük projeler için ücretsiz tier sunuyor. Enterprise özellikler (SSO, MFA) için ücretli plan gerekiyor. Alesta Web olarak küçük-orta projeler için Laravel Breeze'i hala öneriyoruz.

4. Yeni Özellikler (New Features)

Laravel 12'de gelen diğer önemli yenilikler. Alesta Web ekibinin favorileri:

4.1 Failover Queue Driver

Failover Queue Konfigürasyonu (Configuration)

<?php
// config/queue.php

'connections' => [
    'failover' => [
        'driver' => 'failover',
        'connections' => [
            'redis',      // Önce Redis'e dene
            'database',   // Redis başarısız olursa database'e geç
            'sync',       // Son çare: sync driver
        ],
    ],
],

// Kullanım:
// Artık Redis down olduğunda job'lar otomatik olarak
// database queue'ya yönlendirilir. High availability!

dispatch(new ProcessOrder($order))->onConnection('failover');

4.2 Yeni Array ve Collection Helpers

Arr::onlyValues() ve Arr::exceptValues()

<?php
use Illuminate\Support\Arr;

$array = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 2];

// Sadece belirli değerleri içeren elemanları al
$result = Arr::onlyValues($array, [1, 2]);
// ['a' => 1, 'b' => 2, 'd' => 2]

// Belirli değerleri HARİÇ tut
$result = Arr::exceptValues($array, [2]);
// ['a' => 1, 'c' => 3]

// Collection'da da kullanılabilir:
collect($array)->onlyValues([1, 2]);

Collection::containsManyItems()

<?php
$collection = collect(['apple', 'banana', 'cherry']);

// Birden fazla item kontrolü
$result = $collection->containsManyItems(['apple', 'banana']);
// true - Her ikisi de mevcut

$result = $collection->containsManyItems(['apple', 'mango']);
// false - mango yok

// Eski yöntem (Old way):
$hasAll = $collection->contains('apple') && $collection->contains('banana');

// Yeni yöntem (New way) - Daha temiz!
$hasAll = $collection->containsManyItems(['apple', 'banana']);

4.3 Gate Authorization with Enums

Enum Support in Gates

<?php
// Enum tanımla
enum Permission: string
{
    case ViewDashboard = 'view-dashboard';
    case ManageUsers = 'manage-users';
    case DeletePosts = 'delete-posts';
}

// Gate tanımla
Gate::define(Permission::ViewDashboard, function (User $user) {
    return $user->hasRole('admin');
});

Gate::define(Permission::ManageUsers, function (User $user) {
    return $user->hasPermission(Permission::ManageUsers);
});

// Kullanım:
if (Gate::allows(Permission::ViewDashboard)) {
    // Dashboard'a eriş
}

// Policy'de:
$this->authorize(Permission::DeletePosts, $post);

4.4 JSON Cast Unicode Preservation

Unicode Karakterleri Koruma (Preserve Unicode)

<?php

class Post extends Model
{
    // Eski davranış - Unicode escape edilir:
    protected $casts = [
        'metadata' => 'json',
    ];
    // {"title": "\u00d6zel Karakterler"} - Okunması zor!

    // Yeni davranış - Unicode korunur:
    protected $casts = [
        'metadata' => 'json:unicode',
    ];
    // {"title": "Özel Karakterler"} - Okunabilir!
}

// Türkçe karakterler artık düzgün görünüyor
// Turkish characters now display correctly
// Alesta Web olarak bu özelliği çok beğendik!

5. Breaking Changes

Laravel 12'ye yükseltmeden önce bilmeniz gereken kritik değişiklikler:

⚠️ Önemli Breaking Changes:

1. Carbon 2 Desteği Kaldırıldı

// ❌ Artık desteklenmiyor:
"nesbot/carbon": "^2.0"

// ✅ Carbon 3 gerekli:
"nesbot/carbon": "^3.0"

// Carbon 3 farklılıkları:
// - Daha katı typing
// - Bazı deprecated metodlar kaldırıldı
// - Immutable by default seçeneği

// Kontrol edin:
composer show nesbot/carbon

2. PHP 8.2 Minimum Gereksinim

// Laravel 12 için:
// - PHP 8.2 minimum
// - PHP 8.5 önerilir (recommended)

// composer.json kontrolü:
{
    "require": {
        "php": "^8.2"
    }
}

// PHP versiyonunuzu kontrol edin:
php -v

3. Bazı Paket Güncellemeleri

// Laravel 12 ile güncellenen paketler:

// Sanctum
"laravel/sanctum": "^4.0"  // Eskiden ^3.0

// Passport
"laravel/passport": "^12.0"  // Eskiden ^11.0

// Telescope
"laravel/telescope": "^5.0"  // Eskiden ^4.0

// Horizon
"laravel/horizon": "^6.0"  // Eskiden ^5.0

// composer update ile güncelleyin

6. Upgrade Rehberi (Upgrade Guide)

Laravel 11'den Laravel 12'ye nasıl yükseltirsiniz? Alesta Web ekibinin adım adım rehberi:

Adım 1: Composer Bağımlılıklarını Güncelle

// composer.json güncellemeleri:

{
    "require": {
        "php": "^8.2",
        "laravel/framework": "^12.0",
        "nesbot/carbon": "^3.0"
    }
}

// Güncelleme komutları:
composer update

// Eğer conflict olursa:
composer update --with-all-dependencies

Adım 2: Config Dosyalarını Güncelle

# Yeni config değişikliklerini al
php artisan vendor:publish --tag=laravel-config

# Veya manuel karşılaştırma:
# https://github.com/laravel/laravel/compare/11.x...12.x

# Önemli config değişiklikleri:
# - config/queue.php: failover driver eklendi
# - config/auth.php: WorkOS seçenekleri eklendi

Adım 3: Carbon 3 Migration

<?php
// Carbon 2'den Carbon 3'e geçiş kontrolleri:

// ❌ Deprecated metodlar (kaldırılmış olabilir):
$date->diffForHumans(['parts' => 2]);

// ✅ Yeni syntax:
$date->diffForHumans(parts: 2);

// Named arguments kullanımı önerilir
// Carbon 3 strict types kullanır

Adım 4: Test Et ve Deploy Et

# Tüm testleri çalıştır
php artisan test

# Veya PHPUnit ile:
./vendor/bin/phpunit

# Static analysis:
./vendor/bin/phpstan analyse

# Eğer tüm testler geçerse:
git add .
git commit -m "Upgrade to Laravel 12"

# Staging'e deploy et, test et, sonra production
✅ Alesta Web Tavsiyesi / Tip:

Upgrade öncesi mutlaka veritabanı yedeği alın ve staging ortamında test edin. Laravel 12 geriye uyumlu olsa da Carbon 3 geçişi dikkat gerektirir. alestaweb.com'da her zaman bu protokolü uyguluyoruz.

7. Yaygın Hatalar ve Çözümleri (Common Errors and Solutions)

Laravel 12'ye geçişte karşılaşabileceğiniz yaygın hatalar:

❌ Hata 1: Carbon Version Mismatch

// Hata Mesajı (Error Message):
Class 'Carbon\Carbon' not found
// veya
Declaration of Carbon\Carbon::method() must be compatible

// Çözüm (Solution):
composer remove nesbot/carbon
composer require nesbot/carbon:^3.0

// Cache temizle:
php artisan config:clear
php artisan cache:clear
composer dump-autoload

❌ Hata 2: Package Compatibility Issue

// Hata Mesajı (Error Message):
Package spatie/laravel-permission requires laravel/framework ^10.0|^11.0

// Çözüm (Solution):
// Paketi en son sürüme güncelle
composer update spatie/laravel-permission

// Eğer güncelleme yoksa, geçici olarak:
composer require spatie/laravel-permission --with-all-dependencies

// Veya paket maintainer'a issue açın

❌ Hata 3: Queue Failover Config Error

// Hata Mesajı (Error Message):
InvalidArgumentException: Queue connection [failover] is not defined

// Çözüm (Solution):
// config/queue.php'ye failover connection ekleyin:

'connections' => [
    'failover' => [
        'driver' => 'failover',
        'connections' => [
            'redis',
            'database',
        ],
    ],
    // Diğer connections...
],

// Config cache temizle:
php artisan config:clear
⚠️ Alesta Web Uyarısı / Warning:

Her zaman composer.lock dosyasını version control'e dahil edin. Bu, tüm ekip üyelerinin aynı paket versiyonlarını kullanmasını sağlar.

? Kaynaklar ve Referanslar / Sources and References

Bu makalede kullanılan bilgiler aşağıdaki resmi kaynaklardan derlenmiştir (information compiled from official sources):

Alesta Web olarak tüm bilgileri test ettik ve doğruladık (we tested and verified all information).

✅ Laravel 12'ye Hazırsınız! (Ready for Laravel 12!)

Laravel 12 ile PHP geliştirme deneyiminiz daha da güçleniyor. Alesta Web olarak yeni projelerinizde Laravel 12 kullanmanızı ve mevcut projeleri yükseltmenizi öneriyoruz.

Hızlı Özet / Quick Summary:

  • ✅ Yeni Starter Kits: React 19, Vue 3.6, Livewire 3 ile modern başlangıç
  • ✅ WorkOS AuthKit: Passkeys, SSO, social login kolay entegrasyon
  • ✅ Failover Queue: Otomatik queue failover ile high availability
  • ✅ Carbon 3: Geliştirilmiş tarih/saat işlemleri
  • ✅ Yeni Helpers: Arr::onlyValues(), Collection::containsManyItems()

Faydalı Linkler / Useful Links:

© 2026 AlestaWeb - Tüm hakları saklıdır. Bu Laravel rehberi Alesta Web ekibi tarafından hazırlanmıştır.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç