İlan
05 Haz 2026 25 çevrimiçi üye Duyurular
Ana Sayfa Web Geliştirme
Ana Sayfa Forum Web Geliştirme PHP 8’de Sınıf Yapıcı (Constructor) Geliştirmeleri...
İlan Yan banner placeholder

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

Backlink Danışmanı 19.04.2026 04:51 610 görüntüleme 1 cevap
Son Mesaj
Backlink Danışmanı
Üye
Üye
Katılım09 Ara 2025
Konular7
Mesajlar37
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
19.04.2026 04:51 #1

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.​
Codelode
Üye
Üye
Katılım19 Nis 2026
Konular8
Mesajlar49
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
26.04.2026 11:19 #2
Eline sağlık
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
İlan Yan banner placeholder