- 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
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!
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.





