PHP 8.4 Ne Zaman Çıktı?
PHP 8.4, Kasım 2024'te resmi olarak yayınlandı. Büyük sözdizimi değişikliği yerine güçlü geliştirici deneyimi (DX) iyileştirmeleri getirdi. Üç özellik özellikle dikkat çekiyor.
1. Property Hooks (Özellik Kancaları)
PHP 8.4 öncesinde bir özellik için özel get/set mantığı şöyle yazılırdı:
class User {
private string $_name;
public function getName(): string { return $this->_name; }
public function setName(string $v): void { $this->_name = trim($v); }
}
PHP 8.4 ile aynı şeyi doğrudan özellik tanımında yapabilirsin:
class User {
public string $name {
set(string $value) => $this->name = trim($value);
}
}
Boilerplate kod ciddi ölçüde azalıyor. Özellikle Laravel model'lerde ve DTO'larda çok işe yarıyor.
2. Asimetrik Görünürlük (Asymmetric Visibility)
PHP 8.1'deki readonly bir özelliği tamamen değiştirilemez yapıyordu. PHP 8.4 bunu genişleterek dışarıdan okumaya izin verip içeriden yazmaya kısıtlama yapmayı mümkün kılar:
class Order {
public private(set) int $status = 0;
// Dışarıdan okunabilir, yalnızca Order içinden değiştirilebilir
}
3. Yeni Array Fonksiyonları
PHP 8.4, sıkça ihtiyaç duyulan dört array fonksiyonu ekledi:
array_find()— koşula uyan ilk elemanı döndürürarray_find_key()— koşula uyan ilk anahtarı döndürürarray_any()— en az bir eleman koşulu sağlıyor mu?array_all()— tüm elemanlar koşulu sağlıyor mu?
Bu dört fonksiyon öncesinde genellikle array_filter + reset veya manuel foreach yazılırdı.
Güncelleme Gerekli mi?
PHP 8.1 güvenlik desteği Aralık 2025'te bitti. PHP 8.0 ve altı çoktan güvenlik güncellemesi almıyor. Hâlâ eski sürümde kalıyorsan güvenlik açığı riskiyle çalışıyorsun demektir. PHP 8.4 destekleyen hosting arıyorsan web hosting paketlerimize göz atabilirsin.
PHP 8.4'e geçmek mevcut kodu bozar mı?
PHP 8.4, geriye dönük kırıcı değişiklik sayısı bakımından oldukça konservatif. En önemli kırıcı değişiklik: bazı örtük null dönüşümlerinin artık uyarı yerine hata vermesi. Büyük çoğunluk için geçiş sorunsuz, ama geçmeden önce mutlaka test ortamında deneyin.
PHP 8.4 property hooks Laravel/Eloquent ile uyumlu mu?
Evet, property hooks standart PHP sözdiziminin bir parçası ve Laravel ile tam uyumlu. Eloquent accessor/mutator'larla iç içe kullanılabilir, çatışma yaratmaz.
PHP 8.4 performansı 8.3'ten ne kadar iyi?
PHP 8.4, JIT iyileştirmeleri ve dahili optimizasyonlarla 8.3'e kıyasla yaklaşık yüzde 3-8 arasında performans artışı sunar. Yoğun hesaplama yapan uygulamalarda bu fark gerçek olarak hissedilir.