Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Kod Referanslarını Göçlerinizden Çıkarın
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Kod Referanslarını Göçlerinizden Çıkarın

Yazılım

Kod Referanslarını Göçlerinizden Çıkarın

teknomers
Son güncelleme: 1 Şubat 2026 15:25
teknomers
Paylaş
Paylaş


TL;DR

Kısa bir özetle, migration dosyalarınızda business layer’ınızı referans almayın.

Migrations, veritabanı geçmişinizin değişmez anlık görüntüleri olmalıdır; gelişen uygulama koduna bağımlı olmamalıdır.

❌ Bad (breaks if enum class changes or is removed)

$table->enum('role', array_column(Can::cases(), ));
✅ Good (enum values explicitly defined, stable and independent)

$table->enum(, [, ]);


Tümünü Oku

Bir modelde enum değerleri tanımladığımızda, kullanıcıya bir seçim yapabilmesi için enum sınıfını referans alarak bu değerleri kaynak üzerinde göstermek iyi bir pratiktir. Bu şekilde, aynı değerleri tüm projede (backend, frontend) yazmak zorunda kalmazsınız. Aşağıda örnek bir kullanım verilmiştir:

// app/Enums/Role.php
enum Role: string
{
    case Admin = ;
    case Moderator = ;
    case User = ;
}
{{-- resources/views/users/form.blade.php --}}

Bu iyi bir yaklaşımdır, değil mi? Eğer enum üzerinden bu değerleri göstermek yerine, projenin her yerinde aynı değerleri yeniden yazmayı deneseydiniz, hiç de hoş olmazdı.


Neden Migrations Farklıdır?

Migrations, uygulama kodunuz gibi değildir; veritabanınızın zaman içinde nasıl evrildiğinin tarihi kayıtlarıdır. Bir migration üretim ortamında çalıştırıldıktan sonra asla değiştirilmeyecek şekilde tasarlanmalıdır.


Migrations, veritabanı changelog’unuz olmalıdır

  • Her zaman dilimi boyunca şema değişikliklerini belgeler
  • Dinamik referanslar ile bu belgeleri kaybedersiniz
  • Migrations’a bakarak şemanın nasıl evrildiğini anlamak mümkün olmaz


Kırılganlık

  • Bugün: Role enum’u admin ve user değerlerine sahiptir
  • Migration çalıştırılır: Bu değerlerle birlikte kolon oluşturulur, her şey yolunda ✓
  • 6 ay sonra: Role enum’u UserRole olarak yeniden adlandırılır ya da tamamen silinir
  • Yeni bir geliştirici migrations’ı çalıştırır: 💥 Fatal error – Role class not found


Sonuç Olarak

  • Eski migrations’ları düzenleme zorunluluğu doğar
  • Ek iş yükü yaratır
  • Hata riski artırır


Bonus

Ayrıca, foreignIdFor() kullanımından kaçının çünkü bu, migration’ı doğrudan bir model ile ilişkilendirir. Eğer o model silinirse veya yeniden adlandırılırsa, migration geçersiz duruma gelir.

Bu kadar, arkadaşlar.

Kaynak: Orijinal Makale

Contents
  • TL;DR
  • Tümünü Oku
  • Neden Migrations Farklıdır?
    • Migrations, veritabanı changelog’unuz olmalıdır
    • Kırılganlık
    • Sonuç Olarak
  • Bonus
Laravel SaaS Uygulamam için 6 Kimlik Doğrulama Yöntemi Geliştirdim – İşte Tam Mimarisi
Laravel Ekran Görüntüsü API’si: PHP’de Ekran Görüntüsü Yakalama ve PDF Oluşturma
Laravel AI SDK ile Ollama Kullanımı: Yerel LLM’leri Ücretsiz Çalıştırma
Projelerim için kendi kendine barındırılan bir REST API istemcisi geliştirdim, işte nedenleri
Paket Tuzağından Kurtulmak: Laravel Fabric’i Neden Geliştirdim
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Cassette Boy Dünyasını Yeniden Keşfetmeye Hazır Mısınız?
Sonraki Makale 2025 Sistem Raporunda Intel ve AMD Eşit Güvenilirlikte, Nvidia Önde

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Yeni Steam Makinesi ve Steam Çerçevesi Yaz İçin Geliyor
Oyun
Acil: Hack’ler Everest Forms Pro Açığından WordPress Sitelerini Ele Geçiriyor!
Siber Güvenlik
Laravel Kuyruk Mimarisi: Üretimde Arka Plan İşlemleri için Cron Görevlerini Kullanmayı Neden Bıraktım
Yazılım
Yapay Zeka Serif Fontları Ele Geçiriyor: Neden Bu Değişim Oluyor?
Genel
Raspberry Pi ile gerçek zamanlı havalimanı takipçisi ‘Skylight’
Donanım
Donanım Meraklıları: Computex 2026, 3. Gün – Taipei’de Sıcaklık Artıyor
Donanım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?