Laravel 11'den Laravel 12'ye Geçiş Rehberim: Deneyimlerim, İpuçları ve Örneklerle

Erhan ÜRGÜNErhan ÜRGÜN
3 min read

Selamlar, Laravel'in yeni sürümleri her zaman beni heyecanlandırır. Laravel 12'nin yayınlanmasıyla birlikte bu heyecanım yeniden tazelendi. Laravel 11'den Laravel 12'ye geçerken resmi dokümantasyondan ve kendi deneyimlerimden edindiğim kritik bilgileri ve süreci sizlerle paylaşmak istiyorum. Umarım sizin için de yol gösterici olur!

Resmi upgrade rehberine buradan ulaşabilirsiniz: Laravel 12.x Upgrade.


Laravel 12 İçin Sistem Gereksinimleri:

Laravel 12'ye geçmeden önce projenizin şu gereksinimleri karşıladığından emin olun:

  • PHP sürümü: Minimum PHP 8.2 gerekiyor (PHP.net).

  • PHP uzantıları: cURL, DOM, Fileinfo, Mbstring, OpenSSL, PDO, Tokenizer ve XML aktif olmalı.

  • Composer: En az 2.2 sürümüne sahip olmanız gerekiyor (Composer Güncelleme Rehberi).

Laravel 12'ye Geçişte Bilmeniz Gereken Kritik Değişiklikler:

Bağımlılıkları Güncelleyin:

Laravel 12 için aşağıdaki bağımlılıkları güncellemelisiniz:

"laravel/framework": "^12.0",
"phpunit/phpunit": "^11.0",
"pestphp/pest": "^3.0"

Carbon 3:

Laravel 12 artık Carbon 3.x kullanıyor. Carbon 2 desteği kaldırıldı:

composer require nesbot/carbon:^3.0

UUIDv7 Kullanımı:

Laravel 12'de varsayılan olarak UUIDv7 kullanılıyor. Örneğin:

use Illuminate\Database\Eloquent\Concerns\HasUuids;

class User extends Model {
    use HasUuids;
}

UUIDv4 kullanmaya devam etmek için:

use Illuminate\Database\Eloquent\Concerns\HasVersion4Uuids;

class User extends Model {
    use HasVersion4Uuids;
}

SVG Dosyaları ve Validasyon:

Laravel 12’de SVG dosyaları varsayılan olarak devre dışı bırakıldı. SVG kullanmak isterseniz:

$request->validate([
    'logo' => 'required|image:allow_svg',
]);

Concurrency: Sonuçlar İlişkisel Dizi Olarak Dönüyor:

Laravel 12 ile Concurrency::run() metodunun sonuçları ilişkisel bir dizi olarak dönüyor:

$results = Concurrency::run([
    'task1' => fn() => 'Sonuç 1',
    'task2' => fn() => 'Sonuç 2',
]);

// Çıktı:
['task1' => 'Sonuç 1', 'task2' => 'Sonuç 2']

Laravel 12'ye Geçiş İçin Önerdiğim Adımlar:

1. Hazırlık ve Yedekleme:

Mutlaka dosyalarınızın ve veritabanınızın yedeğini alın!

2. Composer Bağımlılıklarını Güncelleyin:

composer update

3. Kod Refaktörizasyonu:

UUID, SVG ve diğer yukarıda belirtilen noktalara özenle dikkat gösterin.

4. Konfigürasyon Güncellemeleri:

Laravel 12 varsayılanları ile konfigürasyonlarınızı kıyaslayarak güncelleyin. Laravel 12 Upgrade Guide faydalı olacaktır.

5. Önbellek Temizliği:

php artisan optimize:clear
# veya
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear

6. Test ve Doğrulama:

Otomatik testlerinizi çalıştırın ve uygulamanızı kapsamlıca test edin:

./vendor/bin/pest

7. Canlı Ortama Dağıtım:

Son testlerden sonra güncellemelerinizi canlı ortama güvenle dağıtabilirsiniz.

Laravel Installer'ı Güncelleme:

Laravel 12 ile uyumlu Laravel installer CLI aracını güncellemeyi unutmayın:

composer global update laravel/installer

Laravel Shift ile Otomatik Geçiş Yapın:

Geçiş sürecini hızlandırmak için Laravel Shift gibi araçlardan faydalanabilirsiniz.

Laravel 12 ile Gelen Yenilikler:

Laravel 12’nin yeni Starter Kit’leri ve WorkOS AuthKit entegrasyonu gibi özelliklerinden hemen yararlandım. Örneğin, AuthKit entegrasyonunu kullanmak:

php artisan breeze:install react --authkit

Bu konu hakkında daha fazla bilgi için bir önceki yazıma buradan ulaşabilirsiniz: https://erho.dev/laravel-12-yayinlandi

Sonuç ve Önerilerim:

Laravel 12, önceki sürümlere göre daha sorunsuz ve hızlı bir geçiş sağlıyor. Düzenli güncelleme yaparak projelerinizi güvende ve güncel tutmanız çok önemli.

Sizin Laravel 12 geçiş süreciniz nasıl geçti? Paylaşımlarınızı ve yorumlarınızı merakla bekliyorum!


Yazımı beğendiyseniz paylaşmayı ve düşüncelerinizi yorumlarda belirtmeyi unutmayın! Ayrıca; eksik, hatalı veya yanlış bir bilgi olması halinde yorumlarda (mümkünse bilginin kaynağıyla beraber) belirttiğiniz takdirde ilgili düzenlemeyi yaparım...

Bunun gibi daha fazla paylaşım için takipte kalın:

0
Subscribe to my newsletter

Read articles from Erhan ÜRGÜN directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Erhan ÜRGÜN
Erhan ÜRGÜN

Laravel | AdonisJS | Back-End Developer