Follow Us On

PHP 8.2 ve 8.3’te “Creation of dynamic property is deprecated” Hatası ve Çözümü

PHP 8.2 ve 8.3’te “Creation of dynamic property is deprecated” Hatası ve Çözümü

WordPress veya özel PHP projelerinde PHP 8.2 ve üzeri sürümlere geçtikten sonra aşağıdaki gibi bir hata alıyor musunuz?

Deprecated: Creation of dynamic property SBWEV_WooCommerce_Email_Verification_Admin::$parent is deprecated in ...

Bu yazıda, bu uyarının ne anlama geldiğini ve nasıl kalıcı olarak çözüleceğini adım adım açıklıyoruz.

Bu Hata Neden Alınıyor?

PHP 8.2 ile birlikte gelen yeni güncellemede, sınıf (class) içinde daha önce tanımlanmamış bir özelliğe (property) dinamik olarak değer atamak “kullanımdan kaldırıldı (deprecated)”.

Örnek:

class Demo {
    function __construct($value) {
        $this->something = $value; // HATA: $something daha önce tanımlanmadı
    }
}

Yukarıdaki gibi $this->something önceden sınıf içinde tanımlanmadıysa, PHP 8.2 ve 8.3 bu satırda deprecated uyarısı verecektir.

Çözüm: Özelliği Önceden Tanımlayın

Hatalı Kod:

class SBWEV_WooCommerce_Email_Verification_Admin {
    function __construct($parent) {
        $this->parent = $parent; // Deprecated uyarısı verir
    }
}

Doğru Kod:

class SBWEV_WooCommerce_Email_Verification_Admin {
    private $parent; // Özellik önceden tanımlandı

    function __construct($parent) {
        $this->parent = $parent; // Artık sorun yok
    }
}

Bu düzeltmeyle birlikte hem kodun okunabilirliği artar hem de PHP’nin güncel standartlarıyla uyumlu hale gelirsiniz.

Bu Hata Nerelerde Karşınıza Çıkabilir?

  • WordPress eklentileri ve temalarında
  • Özel geliştirilen PHP sınıflarında
  • PHP 8.2+ sürümüne geçen tüm projelerde

Geçici Olarak Uyarıyı Gizlemek İsteyenler İçin

Eğer kısa vadeli bir çözüm arıyorsanız (örneğin üçüncü taraf bir eklenti nedeniyle müdahale edemiyorsanız), wp-config.php dosyanıza şu satırı ekleyebilirsiniz:

error_reporting(E_ALL & ~E_DEPRECATED);

Not: Bu sadece uyarıyı gizler, sorunu çözmez. Gelecekte uyumsuzluk sorunlarına neden olabilir.

PHP 8.2 ve 8.3 sürümleri, daha güvenli ve sürdürülebilir kodlar yazmak için bazı alışkanlıklarımızı değiştirmemizi gerektiriyor. Dinamik özellik atama gibi eski yöntemler artık önerilmiyor. Projelerinizde bu tür hataları erkenden tespit edip düzeltmeniz, hem performans hem de güvenlik açısından büyük önem taşıyor.

Waxae ekibi olarak, PHP projelerinizi en güncel standartlara uyumlu hale getirmenizi ve düzenli olarak kodlarınızı gözden geçirmenizi öneriyoruz. Takıldığınız her noktada buradayız.

Leave a Reply