Arkadaşlar selam, PHP 8.4 çıkalı birkaç ay oldu, ama hâlâ çoğu projede 8.2 veya 8.3 kullanıldığını görüyorum. Ben de merak edip detaylıca inceledim. Özellikle property hooks ve asymmetric visibility gibi özellikler dikkatimi çekti. Property hooks sayesinde getter/setter yazmadan doğrudan sınıf özelliklerine mantık ekleyebiliyorsunuz, bu da özellikle büyük projelerde kod tekrarını ciddi anlamda azaltıyor. Ayrıca yeni array_find, array_find_key gibi fonksiyonlar da gelmiş, eskiden array_filter ile uğraştığımız bazı işlemleri tek satırda halledebiliyoruz. Ben kendi açımdan test projelerime kurdum ve performansta ufak da olsa bir iyileşme var gibi geldi, özellikle JIT derleyicideki ince ayarlar sayesinde.
Bir de güvenlik tarafı var tabii. PHP 8.4 ile birlikte bazı eski ve güvensiz kullanımlar tamamen kaldırılmış. Mesela mbstring fonksiyonlarında artık base64 gibi dönüşümler için ayrı bir parametre desteği yok, bunun yerine daha modern ve tip güvenli yöntemler öneriliyor. Ama bu aynı zamanda demek oluyor ki, 8.3 veya daha eski bir sürümde yazılmış bir kodu 8.4'e taşırken bir sürü deprecated uyarısıyla karşılaşabilirsiniz. Ben geçen hafta bir müşteri projesinde 8.3'ten 8.4'e geçmeyi denedim, Symfony kullanan bir projeydi, property hooks ile ilgili herhangi bir sorun çıkmadı ama bazı üçüncü parti paketlerde uyumsuzluk yaşadım. Özellikle eski tarzda yazılmış özel kütüphaneler varsa dikkatli olmak gerekiyor.
Siz ne düşünüyorsunuz? Şu an 8.3 ile devam eden var mı aranızda? Yoksa 8.4'e geçip property hooks gibi yeniliklerden faydalanan oldu mu? Geçiş yaparken hangi sorunlarla karşılaştınız, özellikle framework bağımlılığı olan projelerde sıkıntı yaşayan var mı? Ben özellikle üretim ortamında kullanmak için henüz tam olarak ikna olmuş değilim, biraz daha stabil versiyonlar görmek istiyorum. Ama test ortamlarında kurcalamaya değer mi, yoksa beklemek mi daha mantıklı? Tecrübelerinizi duymak isterim.
Bir de güvenlik tarafı var tabii. PHP 8.4 ile birlikte bazı eski ve güvensiz kullanımlar tamamen kaldırılmış. Mesela mbstring fonksiyonlarında artık base64 gibi dönüşümler için ayrı bir parametre desteği yok, bunun yerine daha modern ve tip güvenli yöntemler öneriliyor. Ama bu aynı zamanda demek oluyor ki, 8.3 veya daha eski bir sürümde yazılmış bir kodu 8.4'e taşırken bir sürü deprecated uyarısıyla karşılaşabilirsiniz. Ben geçen hafta bir müşteri projesinde 8.3'ten 8.4'e geçmeyi denedim, Symfony kullanan bir projeydi, property hooks ile ilgili herhangi bir sorun çıkmadı ama bazı üçüncü parti paketlerde uyumsuzluk yaşadım. Özellikle eski tarzda yazılmış özel kütüphaneler varsa dikkatli olmak gerekiyor.
Siz ne düşünüyorsunuz? Şu an 8.3 ile devam eden var mı aranızda? Yoksa 8.4'e geçip property hooks gibi yeniliklerden faydalanan oldu mu? Geçiş yaparken hangi sorunlarla karşılaştınız, özellikle framework bağımlılığı olan projelerde sıkıntı yaşayan var mı? Ben özellikle üretim ortamında kullanmak için henüz tam olarak ikna olmuş değilim, biraz daha stabil versiyonlar görmek istiyorum. Ama test ortamlarında kurcalamaya değer mi, yoksa beklemek mi daha mantıklı? Tecrübelerinizi duymak isterim.