PHP topluluğu bu hafta heyecan verici bir gelişmeyle çalkalandı: extension anahtar kelimesi. Holly Schilling, Swift tarzı sınıf extension’ları için çalışan prototipler sundu. Bu, geliştiricilerin sahip olmadıkları sınıflara metot eklemesine olanak tanıyor; örneğin, DateTimeImmutable sınıfına isWeekend() metodu eklemek mümkün hale geliyor. İlerleyen aşamalarda scalar değerlere de metot eklenebileceği belirtiliyor. Bu yenilik, kalıtım ve trait’lerin ötesinde bir esneklik sunuyor.
Schilling, extension’ı trait’in tersi olarak tanımlıyor: Trait’te sınıf yazarı karar verirken, extension’da kullanıcı karar veriyor. Ancak ilk tasarımda sorunlar yaşandı; Schilling, kendi scalar-methods implementasyonunu savunamayacağını fark ederek C# 14’ten ilham alan yeni bir sözdizimi geliştirdi. extension string $str şeklindeki bu yeni yapı, otomatik kutulama ve downcast sorunlarını ortadan kaldırıyor. Ayrıca, extension’ların dosya kapsamında kalması ve gerçek metotları geçersiz kılmaması gerektiği vurgulanıyor.
Gina P. Banyard’ın PHP 8.6 için hazırladığı Deprecations RFC’si ise artık donduruldu. Oylama 20 Temmuz’da başlayacak ve 10 Ağustos’a kadar tamamlanacak. Kabul edilen öneriler 8.6.0 beta 1’de yer alacak. Ayrıca, deprecation mesajlarının dilbilgisi düzeltmeleri de gündemde; virgülle ayrılmış cümleler noktalı virgülle değiştirilecek. Ancak bu mesajların BC garantisi olmadığı hatırlatılıyor.
Teknik Analiz
Paul M. Jones’un fonksiyon otomatik yükleme RFC’si (5. deneme) bu hafta küçüldü. declare(strict_namespace=1) yönergesi, ayrı bir RFC olarak ayrıldı. Tim Düsterhus, bu yönergenin konuyla ilgisiz olduğunu ve ayrıca ele alınması gerektiğini savundu. Paul Jones da bu görüşe katılarak strict-namespace RFC’sini ayrıca hazırlayacağını duyurdu. Bu, fonksiyon otomatik yükleme sürecini hızlandıracak.
Detaylar ve Etkileri
Tim Düsterhus ve Derick Rethans’ın Time\Duration sınıfı oylamaya hazırlanıyor. fromSeconds() yöntemi ve sınırlı nanosaniye argümanı tartışma yarattı. Pierre Joye, bu yöntemin kafa karışıklığına yol açtığını belirterek hayır oyu kullanacağını açıkladı. Tim ise sabit nokta gösteriminin doğal olduğunu savundu. Uzlaşma sağlanamasa da oylamanın bu hafta sonu veya gelecek hafta başında açılması planlanıyor.
Önemli Gelişmeler
İlk kez RFC yazan Caleb White, pipe atama operatörü (|>=) ile hızlı bir kabul süreci yaşadı. Bu operatör, $x |>= trim(...) şeklinde kullanılarak $x’i trim fonksiyonundan geçirip sonucu geri atıyor. Diğer değiştir-atla operatörleriyle tutarlılık gösteren bu öneri, Tim Düsterhus’tan olumlu yorum aldı. PHP topluluğu, bu yeniliklerle dilin daha esnek ve modern hale gelmesini bekliyor.
Kaynak: dev.to