PHP 8.5, URI Uzantısı, Boru Operatörü ve Sözdizimi İyileştirmelerini Tanıtıyor
PHP 8.5, daha hızlı performans ve daha temiz kod sunan yeni bir URI uzantısı, pipe operatörü ve anahtar sözdizimi yükseltmeleri tanıtıyor.
PHP, genellikle dinamik web siteleri ve web uygulamaları geliştirmek için kullanılan bir sunucu tarafı programlama dili, yeni sözdizimi, genişletilmiş öznitelik desteği, performans iyileştirmeleri ve birden fazla RFC odaklı özellik ekleyen büyük bir güncelleme olan 8.5 sürümünü yayınladı.
En önemli yeniliklerden biri, yeni yerleşik URI uzantısıdır. Bu uzantı, RFC 3986 ve WHATWG URL standartlarına uygun olarak URL'leri ayrıştırmak ve değiştirmek için tutarlı bir API sağlar. uriparser ve Lexbor tarafından desteklenen bu uzantı, doğru ve standartlara uygun işlem gerektiren durumlarda parse_url() işlevinin yerini alır.
Bu sürümün bir diğer önemli özelliği, sol-sağ fonksiyon zincirlemesine olanak tanıyan boru operatörünün (|>) tanıtılmasıdır. Bu, derinlemesine iç içe geçmiş fonksiyon çağrılarını ortadan kaldırır ve dönüşüm hattını okumayı ve bakımını kolaylaştırır. Değerler, trim(...) gibi ok fonksiyonları ve kısmi uygulamalar dahil olmak üzere çağrılabilir öğeler aracılığıyla doğrudan akar.
PHP 8.5, clone-with sözdizimi ile nesne işlemeyi de geliştiriyor. Geliştiriciler artık bir nesneyi klonlarken seçili özellikleri clone($obj, ['prop' => değer]) ile güncelleyebilir, böylece “with-er” desenini basitleştirir ve readonly sınıflarda gereksiz kod yazmaya gerek kalmadan kullanılabilir hale getirir.
Diğer bir ekleme ise #[\NoDiscard] özniteliğidir; bu öznitelik, bir fonksiyonun dönüş değeri istemeden görmezden gelindiğinde uyarı verir. Bu, döndürülen değerin doğru davranış için gerekli olduğu API’lerde yapılan hataların yakalanmasına yardımcı olur ve geliştirici bunu açıkça görmezden gelmeyi seçtiğinde (void) ile kullanılabilir.
Dil ayrıca derleme zamanı ifadeleri için desteği genişletir. Statik kapamalar ve birinci sınıf çağrılabilirler artık sabit ifadelerde kullanılabilir, bu da onların öznitelik argümanlarında, varsayılan özellik değerlerinde ve sınıf sabitlerinde kullanılabilmesini sağlar.
Performansla ilgili geliştirmeler arasında kalıcı cURL paylaşım kolları bulunur. curl_share_init_persistent() ile paylaşım kolları istekler arasında varlığını sürdürür ve daha önce başlatılmış bağlantı verilerini yeniden kullanır, uzun süre çalışan uygulamalarda tekrarlanan ağ işlemlerindeki ek yükü azaltır.
İki yeni yardımcı fonksiyon, array_first() ve array_last(), yaygın durumlar için daha net bir kullanım sunuyor. Her ikisi de boş diziler için null döner, bu da null-birleştirme operatörü ile kullanımını basitleştirir ve manuel anahtar kontrollerine gerek kalmasını ortadan kaldırır.
Ek değişiklikler, geniş bir dil özelliği yelpazesini kapsıyor. Ölümcül hatalar artık geri izlemeleri içeriyor, öznitelikler sabitleri hedefleyebilir ve statik özellikler asimetrik görünürlüğü destekliyor.
Özellikler, yapıcı özellik yükseltme yoluyla final olarak işaretlenebilir. Ayrıca, PHP getElementsByClassName() ve insertAdjacentHTML() gibi yeni DOM yöntemlerinin yanı sıra grapheme_levenshtein() gibi yeni yardımcı işlevler de ekler.
Son olarak, PHP 8.5'teki kullanımdan kaldırmalar, kanonik olmayan tür dönüştürme isimlerinin kaldırılmasını, shell_exec() için bir alias olarak backtick operatörünün kullanımdan kaldırılmasını, geçersiz float'tan int'e dönüşüm uyarılarını ve null'ın dizi indeksi olarak kullanımına sınırlamalar getirilmesini içeriyor. Eski __sleep() ve __wakeup() serileştirme yöntemleri artık __serialize() ve __unserialize() lehine yumuşak bir şekilde kullanımdan kaldırılmıştır.
PHP 8.5'teki tüm değişikliklerle ilgili daha fazla bilgi için resmi sürüm duyurusuna veya bu sayfaya başvurun.
