PHP’nizi 2015 gibi yazıyorsanız, kodunuzu daha temiz, daha güvenli ve bakımı daha kolay hale getiren bazı güçlü özellikleri kaçırıyorsunuz demektir.
Bu yazıda, modern PHP özelliklerinden 5 tanesini basit bir şekilde örneklerle göstereceğim. Bu özellikleri gerçek projelerde kullanabilirsiniz.
1. ✅ Typed Properties (Strict Data Handling)
1. ✅ Typed Properties (Strict Data Handling)
PHP 7.4 öncesinde, sınıf özellikleri için veri tipleri belirleyemezdiniz.
❌ Eski yöntem:
❌ Eski yöntem:
❌ Eski yöntem:
class User {
public $name;
}
✅ Yeni yöntem:
✅ Yeni yöntem:
✅ Yeni yöntem:
class User {
public string $name;
}
Neden önemli:
Neden önemli:
Neden önemli:
Neden önemli:
- Geçersiz verileri önler
- Kodunuzu öngörülebilir yapar
- Hataları erken önler
2. ✅ Arrow Functions (Shorter Closures)
2. ✅ Arrow Functions (Shorter Closures)
Arrow fonksiyonları, kodunuzu daha kısa ve temiz hale getirir.
❌ Eski yöntem:
❌ Eski yöntem:
❌ Eski yöntem:
$numbers = [1, 2, 3];
$squared = array_map(function($n) {
return $n * $n;
}, $numbers);
✅ Yeni yöntem:
✅ Yeni yöntem:
✅ Yeni yöntem:
$squared = array_map(fn($n) => $n * $n, [1,2,3]);
Neden önemli:
Neden önemli:
Neden önemli:
Neden önemli:
- Daha az boilerplate kod
- Daha okunabilir fonksiyonel kod
3. ✅ Null Safe Operator (?->)
3. ✅ Null Safe Operator (
?->)Sinir bozucu null kontrolünden kurtulun.
❌ Eski yöntem:
❌ Eski yöntem:
❌ Eski yöntem:
if ($user && $user->profile) {
echo $user->profile->email;
}
✅ Yeni yöntem:
✅ Yeni yöntem:
✅ Yeni yöntem:
echo $user?->profile?->email;
Neden önemli:
Neden önemli:
Neden önemli:
Neden önemli:
- Daha temiz kod
- Artık “null olan bir özelliğe erişmeye çalışma” hataları yok
4. ✅ Match Expression (Switch’ten Daha İyi)
4. ✅ Match Expression (Switch’ten Daha İyi)
match, switch‘ten daha katı ve daha temizdir.
❌ switch:
❌ switch:
switch($status) {
case 'success':
$msg = 'Done';
break;
case 'error':
$msg = 'Failed';
break;
}
✅ match:
✅ match:
$msg = match($status) 'success' => 'Done',
'error' => 'Failed',
default => 'Unknown'
};
Neden önemli:
Neden önemli:
Neden önemli:
Neden önemli:
- Artık
breakgerekmiyor - Katı kıyaslama (tip karışıklığı yok)
5. ✅ Constructor Property Promotion
5. ✅ Constructor Property Promotion
Sınıflar oluştururken daha az boilerplate kod.
❌ Eski yöntem:
❌ Eski yöntem:
❌ Eski yöntem:
class User {
public string $name;
public function __construct($name) {
$this->name = $name;
}
}
✅ Yeni yöntem:
✅ Yeni yöntem:
✅ Yeni yöntem:
class User {
public function __construct(public string $name) {}
}
Neden önemli:
Neden önemli:
Neden önemli:
Neden önemli:
- Daha temiz sınıflar
- Daha az tekrar eden kod
🔥 Son Düşünceler
🔥 Son Düşünceler
Modern PHP:
- Daha hızlı ⚡
- Daha temiz ✨
- Daha güvenli 🔒
Laravel gibi framework’lerle çalışıyorsanız, bu özellikler zaten arka planda kullanılmakta. Dolayısıyla, onları anlamak kodlama becerilerinizi geliştirecektir.
💬 Sonraki Adımlar?
💬 Sonraki Adımlar?
Eğer bunu yararlı bulduysanız, paylaşabilirim:
- Bu özellikleri kullanan gerçek dünya Laravel örnekleri
- PHP uygulamaları için performans ipuçları
- PHP’de temiz mimari desenleri
Yorumlarda bana bildirin 👇
Kaynak: Orijinal Makale


