İçeriğe atla
FerdiGidenby FerdiSoftBETA v2.4
Web Geliştirme

PHP 8.1 Enum ile Durum ve Rol Yönetimi

Web Geliştirme üzerinde çalışırken PHP 8.1 Enum ile Durum ve Rol Yönetimi konusunu doğru kavramak hem zaman kazandırır hem de ileride çıkabilecek sorunların önüne geçer. Aşağıda konunun özünü 5 başlık altında topladık.

Ferdi GidenFerdi Giden 2 dk okuma 36
PHP 8.1 Enum ile Durum ve Rol Yönetimi
İçindekiler
  1. Temel kavram ve amaç
  2. Kritik noktalar
  3. Örnek kod
  4. Avantajları
  5. Özetle

Web Geliştirme üzerinde çalışırken PHP 8.1 Enum ile Durum ve Rol Yönetimi konusunu doğru kavramak hem zaman kazandırır hem de ileride çıkabilecek sorunların önüne geçer. Aşağıda konunun özünü 5 başlık altında topladık.

Temel kavram ve amaç

Sipariş durumu, üye rolü ya da ödeme tipi gibi sınırlı değer kümeleri yıllarca sabitler ve dizelerle tutuldu. PHP 8.1 ile gelen enum, bu değerleri tür güvenli hâle getirir: yazım hatası derleme aşamasında yakalanır, ilgili davranış da değerin yanında durur.

Kritik noktalar

  • Backed enum: string ya da int değerli enum, veritabanındaki sütunla birebir eşleşir.
  • from ve tryFrom: from() geçersiz değerde hata fırlatır, tryFrom() null döndürür; kullanıcı girdisinde tryFrom() tercih edin.
  • Yöntemler: Etiket, renk ya da izin kontrolü gibi davranışlar enum içinde yazılabilir.
  • match ile birlikte: match ifadesi tüm durumlar ele alınmazsa çalışma anında hata verir, eksik durum gözden kaçmaz.
  • cases(): Tüm değerleri listeleyerek açılır menü ve doğrulama kuralı üretmek kolaylaşır.

Örnek kod

Teoriyi somutlaştırmak için kısa bir PHP örneğine bakalım:

enum SiparisDurumu: string
{
    case Bekliyor = 'bekliyor';
    case Hazirlaniyor = 'hazirlaniyor';
    case Kargoda = 'kargoda';
    case Teslim = 'teslim';

    public function etiket(): string
    {
        return match ($this) {
            self::Bekliyor => 'Onay bekliyor',
            self::Hazirlaniyor => 'Hazırlanıyor',
            self::Kargoda => 'Kargoya verildi',
            self::Teslim => 'Teslim edildi',
        };
    }
}

$durum = SiparisDurumu::from($satir['durum']);   // geçersiz değerde ValueError
echo $durum->etiket();

Örneği kendi projenize uyarlarken değişken adlarını ve yapılandırma değerlerini ortamınıza göre değiştirmeyi unutmayın.

Kullanıcıdan gelen veriyi ekrana basarken htmlspecialchars() ile kaçışlamak XSS saldırılarının önüne geçer.

Avantajları

Bu yaklaşımı benimsediğinizde elde edeceğiniz başlıca faydalar:

  • Yazım hatalı durum dizeleri koda giremez
  • Durumla ilgili kurallar tek yerde toplanır
  • IDE otomatik tamamlama ve yeniden adlandırmayı destekler

Özetle

PHP 8.1 Enum ile Durum ve Rol Yönetimi, küçük ama düzenli adımlarla ustalaşılan konulardan biri. Özellikle Backed enum ve cases() başlıklarını uygulamaya geçirmek iyi bir başlangıç olur.

İlgili içerikler:

Daha fazla uygulamalı içerik için Akademi derslerine ve blog yazılarına göz atabilirsiniz.

Paylaş:
Ferdi Giden

Yazar

Ferdi Giden @admin
Sistem YöneticisiDoğrulanmış GeliştiriciBeta KullanıcıFerdiSoft KatılımcısıDoğrulanmış ProfilGüvenlik Bilinci

PHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.

Yorumlar 0

Yorum yapmak ve tartışmaya katılmak için giriş yapın. Rozetleriniz yorumlarınızda görünür.

Henüz yorum yok. İlk yorumu siz yazın!

İlgili yazılar

Tüm yazılar
Ücretsiz Teklif Al