PHP 8.5 Memperkenalkan Ekstensi URI, Operator Pipe, dan Peningkatan Sintaks
PHP 8.5 memperkenalkan ekstensi URI baru, operator pipa, dan peningkatan sintaks kunci, memberikan kinerja yang lebih cepat dan kode yang lebih bersih.
PHP, bahasa pemrograman sisi server yang digunakan terutama untuk membangun situs web dan aplikasi web dinamis, baru saja merilis versi 8.5, pembaruan besar yang menambahkan sintaks baru, dukungan atribut yang diperluas, peningkatan kinerja, dan berbagai fitur yang digerakkan oleh RFC.
Salah satu penambahan paling signifikan adalah ekstensi URI bawaan baru. Ini menyediakan API yang konsisten untuk memparsing dan memodifikasi URL, sesuai dengan standar RFC 3986 dan URL WHATWG. Didukung oleh uriparser dan Lexbor, ini menggantikan parse_url() dalam skenario di mana penanganan yang akurat dan sesuai standar diperlukan.
Sorotan besar lain dari versi ini adalah pengenalan operator pipe (|>), yang memungkinkan perangkai fungsi dari kiri ke kanan. Ini menghilangkan pemanggilan fungsi yang sangat bersarang, sehingga pipeline transformasi lebih mudah dibaca dan dipelihara. Nilai bergerak langsung melalui callable, termasuk fungsi panah dan aplikasi parsial seperti trim(...).
PHP 8.5 juga meningkatkan penanganan objek dengan sintaks clone-with. Pengembang sekarang dapat memperbarui properti tertentu saat mengkloning objek melalui clone($obj, ['prop' => value]), menyederhanakan pola “with-er” dan membuatnya dapat digunakan dalam kelas read-only tanpa kode berulang.
Tambahan lainnya adalah atribut #[\NoDiscard], yang memberikan peringatan ketika nilai kembalian sebuah fungsi diabaikan secara tidak sengaja. Ini membantu menangkap kesalahan dalam API di mana nilai yang dikembalikan diperlukan untuk perilaku yang benar, dengan (void) tersedia ketika pengembang secara eksplisit memilih untuk mengabaikannya.
Bahasa ini juga memperluas dukungan untuk ekspresi waktu-kompilasi. Closure statis dan callable kelas-pertama sekarang diizinkan dalam ekspresi konstan, membuatnya dapat digunakan dalam argumen atribut, nilai properti default, dan konstanta kelas.
Peningkatan terkait kinerja mencakup handle share cURL yang persisten. Dengan curl_share_init_persistent(), handle share bertahan di antara permintaan dan menggunakan kembali data koneksi yang sebelumnya telah diinisialisasi, mengurangi beban dalam operasi jaringan berulang untuk aplikasi yang berjalan lama.
Dua fungsi pembantu baru, array_first() dan array_last(), menawarkan penanganan yang lebih jelas untuk kasus-kasus umum. Keduanya mengembalikan null untuk array kosong, yang menyederhanakan penggunaan dengan operator penggabungan null dan menghilangkan kebutuhan untuk memeriksa kunci secara manual.
Perubahan tambahan mencakup berbagai fitur bahasa. Kesalahan fatal sekarang termasuk jejak balik, atribut dapat menargetkan konstanta, dan properti statis mendukung visibilitas asimetris.
Properti dapat ditandai sebagai final melalui promosi properti konstruktor. Selain itu, PHP juga menambahkan metode DOM baru seperti getElementsByClassName() dan insertAdjacentHTML(), serta fungsi utilitas baru seperti grapheme_levenshtein().
Akhirnya, deprecations di PHP 8.5 termasuk penghapusan nama cast yang tidak kanonik, deprecasi operator backtick sebagai alias untuk shell_exec(), peringatan untuk cast float-ke-int yang tidak valid, dan batasan dalam menggunakan null sebagai indeks array. Metode serialisasi lama __sleep() dan __wakeup() sekarang soft-deprecated digantikan oleh __serialize() dan __unserialize().
Untuk informasi lebih lanjut tentang semua perubahan di PHP 8.5, lihat pengumuman rilis resmi atau halaman ini.
