Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu PHP 8’de Sınıf Yapıcı (Constructor) Geliştirmeleri Rehberi

ByMoDuS

Fahri Üye
Fahri Üye
Katılım
30 Nis 2011
Konular
1,324
Mesajlar
5,827
Çözüm
20
Online süresi
6mo 6d
Reaksiyon Skoru
5,734
Altın Konu
235
Başarım Puanı
379
MmoLira
27,333
DevLira
27
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Php8dir.png

PHP 8’de Sınıf Yapıcı (Constructor) Geliştirmeleri Rehberi

PHP 8, sınıf yapıcılarında (constructor) önemli geliştirmeler sunarak nesne oluşturmayı çok daha pratik ve esnek hale getirdi. Bu yenilikler, sınıfların tanımlanması ve kullanılması sürecini sadeleştirirken kodun okunabilirliğini de artırıyor. Kısacası, artık daha temiz, daha az tekrarlı ve bakım açısından daha kolay kodlar yazmak mümkün. Şimdi bu geliştirmelere yakından bakalım.​

7.1.1. Özellik Tanıtımı (Property Promotion)


PHP 8’in en dikkat çekici yeniliklerinden biri property promotion özelliği. Bu özellik sayesinde sınıf özelliklerini doğrudan constructor parametre listesinde tanımlayabiliyorsun. Böylece, her özelliği ayrı ayrı tanımlayıp değer atama derdinden kurtuluyorsun.​


Örneğin:

PHP:
class User {
    public function __construct(
        public string $name,
        public int $age,
        public ?string $email = null
    ) {}
}

Bu örnekte, User sınıfındaki $name, $age ve $email özellikleri doğrudan constructor içinde tanımlanıyor. Nesne oluşturulduğunda bu değerler otomatik olarak atanıyor. Artık ekstra satırlara veya gereksiz tanımlamalara gerek kalmıyor.

7.1.2. Özellik Sıralaması (Property Promotion Order)


Property promotion, özelliklerin sırasını değiştirme konusunda da esneklik sağlıyor. Yani, parametre listesindeki sıralamayı değiştirsen bile özelliklerin atama sırası etkilenmiyor.
PHP:
class User {
    public function __construct(
        public int $age,
        public string $name,
        public ?string $email = null
    ) {}
}

Burada özelliklerin sırası farklı olsa da PHP bunları doğru şekilde eşleştiriyor. Bu esneklik, sınıf yapıcılarını tasarlarken ve güncellerken oldukça rahatlık sağlıyor.​

7.1.3. Görünürlük Belirleyicileri (Visibility Modifiers)


PHP 8’de constructor içinde tanımladığın özelliklere public, protected veya private gibi görünürlük belirleyicileri ekleyebilirsin. Bu da hem property promotion avantajını kullanmanı hem de erişim kontrolünü sağlamanı mümkün kılıyor.
PHP:
class User {
    public function __construct(
        public string $name,
        protected int $age,
        private ?string $email = null
    ) {}
}

Bu örnekte $name herkese açık (public), $age sadece sınıf ve alt sınıflar için erişilebilir (protected) ve $email sadece sınıf içinde kullanılabilir (private). Bu sayede kod yapısı daha güvenli ve düzenli hale geliyor.

7.1.4. Varsayılan Değerlerle Başlatma (Initialization with Default Values)


Bir diğer güzel özellik de constructor’da default value kullanımı. Yani, özelliklere varsayılan değerler atayarak nesne oluşturulurken bu değerlerin otomatik olarak kullanılmasını sağlayabiliyorsun.
PHP:
class User {
    public function __construct(
        public string $name = 'Guest',
        public int $age = 0,
        public ?string $email = null
    ) {}
}

Eğer yeni bir User nesnesi oluştururken değer girmezsen, $name “Guest”, $age 0 ve $email null olarak atanır. Bu, özellikle opsiyonel verilerle çalışırken büyük kolaylık sağlar.​

7.1.5. Property Promotion’un Faydaları


Constructor property promotion, PHP 8’de geliştiricilerin hayatını kolaylaştıran en kullanışlı yeniliklerden biri. Kod tekrarını azaltır, okunabilirliği artırır ve özelliklerin görünürlüğünü kolayca yönetmeni sağlar. Ayrıca, varsayılan değer atama özelliğiyle birlikte kodun daha esnek ve bakımı daha basit hale gelir. Sonuç olarak, property promotion, hem zamandan kazandırır hem de proje genelinde daha düzenli ve sürdürülebilir bir kod yapısı oluşturmanı sağlar.​
 
Eline sağlık :)
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst