PHP 8.4 hadir bulan November dengan ekstensi HTML 5, fungsi array, dan fitur lainnya

INFOLOKERLAMPUNG.ID,   Tim PHP telah merilis Alpha 2 dari PHP 8.4, update bahasa pemrograman populer ini rencananya akan tersedia untuk umum pada bulan November. Ada banyak fitur baru yang termasuk dalam pembaruan ini, seperti parsing HTML 5 DOM (Document Object Model), dukungan untuk dokumen XML besar, dan fungsi bantu array.

PHP mempunyai ekstensi DOM yang bisa memuat dan memparsing dokumen HTML, tapi parser yang ada saat ini berbasis pada perpustakaan GNOME yang disebut libxml2 hanya mendukung HTML 4.01, yang sudah ketinggalan zaman. HTML 5 sekarang jadi standar umum, tapi mencoba menggunakan fungsi loadHTML PHP dengan konten HTML 5 bisa menghasilkan "banyak kesalahan parsing," seperti yang disebutkan dalam RFC. "tidak bisa memparsing HTML 5 dengan baik adalah salah satu masalah utama dari ekstensi DOM kita."

Versi baru ini menggunakan parser HTML 5 alternatif dan memperkenalkan kelas DOM/HTMLDocument baru, sehingga pengembang yang menggunakan kelas DOMDocument yang ada tidak akan melihat perubahan dalam perilaku. Ini juga kesempatan untuk meningkatkan API. Parser baru ini berbasis pada proyek sumber terbuka yang disebut Lexbor.

Masih dalam tema parsing, pengguna PHP mengeluhkan bahwa parser XML mengalami kesalahan memori ketika menangani XML besar, tanpa cara untuk mengatur opsi di libxml2 untuk memungkinkan data input besar. Opsi baru yang disebut XML_OPTION_PARSE_HUGE akan memperbaiki masalah ini. Opsi ini akan nonaktif secara default, karena ada manfaat menolak input besar untuk menahan serangan denial of service. Opsi baru ini untuk parser ext\xml berbasis event, karena opsi parsing XML lainnya di PHP sudah mendukung pengaturan LIBXML_PARSEHUGE.

PHP 8.4 juga punya fungsi pencarian array baru. Masalahnya adalah fungsi pemrosesan array di PHP tidak memiliki "fungsi untuk menemukan satu elemen yang sesuai dengan kondisi tertentu," kata RFC. Pengembang sering membuat kode mereka sendiri untuk ini, yang sebenarnya tidak sulit, tapi "fungsi-fungsi ini sering kali dibutuhkan, sehingga menyebabkan penemuan berulang kali," lanjut RFC. Oleh karena itu, diperkenalkan empat fungsi baru: array_find, array_find_key, array_any, dan array_all.

Fitur lain yang disambut baik adalah kemampuan untuk mengakses anggota dari kelas yang baru lebih instan tanpa tanda kurung tambahan. Fitur ini disebut new MyClass()->method() tanpa tanda kurung. Meskipun terlihat seperti perubahan kecil, ini menyederhanakan kode dan menghemat waktu pengembang untuk memeriksa dokumentasi guna mengetahui mengapa sesuatu yang terlihat seharusnya bekerja, ternyata tidak.

Masih ada banyak fitur lain yang diharapkan dalam rilis 8.4 termasuk kompilator JIT yang lebih pintar, dan satu yang mungkin menimbulkan kesalahan deprecation dalam kode yang ada, ditambah deprecation dari tipe parameter yang secara implisit nullable.

Sebagai rilis Alpha, masih ada kemungkinan beberapa fitur tidak akan masuk dalam versi final. Tapi pembekuan fitur kurang dari satu bulan lagi dari jadwal rilis PHP 8.4 untuk rilis Alpha dan kemudian pembekuan fitur pada 13 Agustus. Selanjutnya Beta, kemudian rilis kandidat atau RC, hingga ketersediaan umum (Public) pada 21 November.

Related Posts