Laravel 13’ün çıkışına 9 gün kaldı. Taylor Otwell, bunu Laracon EU 2026’da duyurdu ve ana başlık: sıfır kırılma değişiklikleri. Laravel tarihinin en sorunsuz yükseltmesi.
Aşağıda, günlük kullanımda gerçekten önemli olan özellikler için değişikliklerin neler olduğunu ve öncesi/sonrası kod örneklerini bulabilirsiniz.
PHP 8.3 artık minimum
PHP 8.3 artık minimum
Öncelikle bakım gereksinimleri. Laravel 13, PHP 8.2 desteğini kaldırıyor. Versiyonunuzu kontrol edin:
php -vEğer PHP 8.2 kullanıyorsanız, Laravel’i yükseltmeden önce sunucunuzu güncelleyin. Bu listedeki diğer her şey, kırılma yapmadan ve isteğe bağlı olarak güncellenmiştir.
1. PHP Attributes — ana özellik
1. PHP Attributes — ana özellik
Bu konu herkesin konuşacağı bir özellik. Model konfigürasyonlarını, iş ayarlarını ve komut imzalarını sınıf özellikleri olarak tanımlamak yerine, artık yerel PHP #[Attribute] sözdizimini kullanabilirsiniz.
Modeller — öncesi:
class Invoice extends Model
{
protected $table = 'invoices';
protected $primaryKey = 'invoice_id';
protected $keyType = 'string';
public $incrementing = false;
protected $fillable = ['amount', 'status', 'user_id'];
protected $hidden = ['internal_notes'];
// actual model logic starts way down here...
}Modeller — sonrası:
#[Table('invoices', key: 'invoice_id', keyType: 'string', incrementing: false)]
#[Fillable('amount', 'status', 'user_id')]
#[Hidden('internal_notes')]
class Invoice extends Model
{
// your real logic is immediately visible
}İşler — öncesi:
class ProcessPayment implements ShouldQueue
{
public $connection = 'redis';
public $queue = 'payments';
public $tries = 3;
public $timeout = 60;
}İşler — sonrası:
#[WithQueue(connection: 'redis', queue: 'payments', tries: 3, timeout: 60)]
class ProcessPayment implements ShouldQueue
{
// queue config declared, not buried
}Komutlar — öncesi:
class SendReportCommand extends Command
{
protected $signature = 'report:send {--force}';
protected $description = 'Send the weekly report email';
}Komutlar — sonrası:
#[Command(signature: 'report:send {--force}', description: 'Send the weekly report email')]
class SendReportCommand extends Command
{
}Aynı mantık, dinleyiciler, bildirimler, mailer’lar, yayın olayları, talepler için de geçerlidir — toplamda yaklaşık 15 yer vardır. Ve yine: tamamen isteğe bağlı. Mevcut kodunuz her zamanki gibi çalışır.
2. Cache::touch() — yeniden yüklemeden TTL uzatma
2. Cache::touch() — yeniden yüklemeden TTL uzatma
Bu, yıllardır sessiz bir performans tuzağıydı. Bir cache öğesinin süresini uzatmak için önce değeri almanız, sonra yeniden kaydetmeniz gerekiyordu:
// Önce — 2 gidiş-dönüş, tam yük aktarımı
$value = Cache::get('user_session:123');
Cache::put('user_session:123', $value, now()->addHour());Laravel 13:
// Sonra — Redis'e tek EXPIRE komutu
Cache::touch('user_session:123', 3600);Altında: Redis, bir EXPIRE komutu alır. Memcached yerel TOUCH komutunu kullanır. Veritabanı sürücüsü tek bir UPDATE çalıştırır. Değer alma yok, yük aktarımı yok. Eğer bu ayarlamaları her istekte büyük ölçekle yapıyorsanız (kaydırılabilir oturumlar, hız sınırı pencereleri, abonelik kontrolleri) — bu hızla artar.
3. Reverb veritabanı sürücüsü — Redis olmadan gerçek zamanlı
3. Reverb veritabanı sürücüsü — Redis olmadan gerçek zamanlı
Laravel Reverb’ü yatay olarak ölçeklendirmek artık Redis gerektiriyordu. Laravel 13, MySQL veya PostgreSQL yerine bir veritabanı sürücüsü ekliyor:
'reverb' => [
'scaling' => [
'driver' => 'database', // yeni — Redis gerekmeden
],
],Küçük ve orta ölçekli projeler için, sadece WebSockets için ayrı bir Redis örneği sağlamak istemiyorsanız, bu büyük bir gelişme.
4. Passkey kimlik doğrulaması
4. Passkey kimlik doğrulaması
Passkeys (WebAuthn — Yüz ID, parmak izi, donanım anahtarları) artık Laravel’in başlangıç kitlerine ve Fortify’ye entegre edilmiştir. Üçüncü taraf paketlere ihtiyaç duyulmamaktadır. Yeni Laravel 13 uygulamalarında otomatik olarak oluşturulmaktadır.
5. Laravel AI SDK kararlılık kazanıyor
5. Laravel AI SDK kararlılık kazanıyor
Laravel AI SDK, 17 Mart’ta Laravel 13 ile beraber beta sürümünden çıkıyor. Hedeflenen LLM entegrasyonu (OpenAI, Anthropic, diğerleri) düzgün kuyruk desteği ve Laravel’e özgü kavramlarla sağlanmaktadır.
6. Takım desteği başlangıç kitlerine geri dönüyor
6. Takım desteği başlangıç kitlerine geri dönüyor
Jetstream, takımları destekliyordu. Yeni başlangıç kitlerinde bu yoktu. Laravel 13, daha temiz bir uygulamayla bunu geri getiriyor.
Bilinmesi gereken diğer iyileştirmeler
Bilinmesi gereken diğer iyileştirmeler
- MySQL DELETE…JOIN artık
ORDER BYveLIMITuyguluyor — daha önce sessiz bir şekilde göz ardı ediliyordu. - HTTP havuz eşzamanlılığı varsayılan olarak
2olacaktır — havuzlu istekler artık kesinlikle eşzamanlıdır. - Symfony 7.4 ve 8.0 desteği.
Nasıl yükseltilir
Nasıl yükseltilir
"require": {
"php": "^8.3",
"laravel/framework": "^13.0"
}composer update
php artisan config:clear
php artisan cache:clear
php artisan view:clearÖncelikle PHP 8.3’ün çalıştığından emin olun. Üretim ortamında değişiklik yapmadan önce staging ortamında test edin.
Tam özellik analizi
Tam özellik analizi
Daha ayrıntılı bir versiyon yazdım, yükseltme notları ve SSS ile birlikte kendi blogumda:
👉 Laravel 13 Yeni Özellikler: Bilmeniz Gereken Her Şey
Hangi özellik için en çok heyecanlanıyorsunuz? PHP Attributes ana özellik olabilir ama Cache::touch() özelliği, büyük ölçeklerde performans açısından en çok faydayı sağlayacak olan gibi görünüyor. Düşüncelerinizi aşağıya bırakın.
Kaynak: Orijinal Makale
- PHP 8.3 artık minimum
- 1. PHP Attributes — ana özellik
- 2. Cache::touch() — yeniden yüklemeden TTL uzatma
- 3. Reverb veritabanı sürücüsü — Redis olmadan gerçek zamanlı
- 4. Passkey kimlik doğrulaması
- 5. Laravel AI SDK kararlılık kazanıyor
- 6. Takım desteği başlangıç kitlerine geri dönüyor
- Bilinmesi gereken diğer iyileştirmeler
- Nasıl yükseltilir
- Tam özellik analizi


