Fitur-fitur baru di PHP 8.5
(stitcher.io)- PHP 8.5 adalah versi pembaruan besar yang mencakup berbagai fitur seperti operator pipe, clone with, dan parser URI baru
- Operator pipe menyederhanakan rantai pemanggilan fungsi sehingga meningkatkan keterbacaan dan kemudahan pemeliharaan
- Fitur clone with memungkinkan perubahan nilai properti sekaligus saat menyalin objek, dengan beberapa batasan pada properti readonly
- Fitur kenyamanan untuk pengembang diperkuat melalui
#[NoDiscard], cast(void), dukungan ekspresi konstan untuk closure, dan output backtrace untuk fatal error - Versi ini juga mencakup perbaikan detail seperti pemrosesan array, validasi atribut, penghentian cast nonstandar, serta perubahan terkait kompatibilitas mundur
Fitur baru utama
-
Dengan diperkenalkannya operator pipe (
|>), kini dimungkinkan menulis kode bergaya chaining yang langsung meneruskan hasil suatu fungsi ke fungsi berikutnya- Mendukung struktur transformasi data bertahap alih-alih pemanggilan fungsi bertingkat
- Pada contoh kode,
trim,str_replace,strtolower, dan lainnya dihubungkan secara berurutan
-
Melalui fitur clone with, nilai properti dapat diubah sekaligus saat menyalin objek
- Pada kelas contoh
Book, digunakan dalam bentukclone($this, ['title' => $title]) - Namun, saat menyalin properti readonly dari luar, diperlukan penentu akses
public(set)
- Pada kelas contoh
-
Penambahan atribut
#[NoDiscard]dan cast(void)- Dapat menandai fungsi yang akan memunculkan peringatan bila nilai kembalian diabaikan
- Peringatan dapat ditekan dengan menggunakan cast
(void)
-
Melalui peningkatan pada closure, kini closure dan first-class callable dapat digunakan dalam ekspresi konstan
- Pada contoh, didefinisikan di dalam atribut dalam bentuk
#[SkipDiscovery(static function (...))] - Closure seperti ini wajib dideklarasikan sebagai
staticdan tidak dapat mengakses variabel eksternal
- Pada contoh, didefinisikan di dalam atribut dalam bentuk
-
Penambahan fitur output backtrace untuk fatal error
- Informasi stack trace yang sebelumnya tidak ditampilkan kini disertakan dalam pesan error sehingga debugging menjadi lebih mudah
Fitur terkait array dan URI
-
Penambahan fungsi
array_first()danarray_last()- Mengembalikan elemen pertama dan terakhir dari array dengan sederhana
- Menggantikan pendekatan lama yang lebih rumit dengan
array_key_first()danarray_key_last()
-
Penambahan parser URI baru
- Menyediakan metode seperti
getHost(),getScheme(),getPort(), dan lainnya melalui kelasUri\Rfc3986\Uri - Menyederhanakan manipulasi dan analisis URI
- Menyediakan metode seperti
Fitur terkait atribut dan validasi
- Diperkenalkannya atribut
#[DelayedTargetValidation]- Memungkinkan penundaan waktu validasi untuk beberapa atribut seperti
#[Override]dari waktu kompilasi ke runtime - Bertujuan mengurangi masalah kompatibilitas mundur
- Memungkinkan penundaan waktu validasi untuk beberapa atribut seperti
Perubahan kecil lainnya
- Dukungan untuk asymmetric visibility pada properti statis
- Kini atribut juga dapat diberikan pada konstanta di luar kelas
- Property promotion pada konstruktor kini juga dapat diterapkan pada properti final
- Atribut
#[\Override]kini juga dapat diterapkan pada properti - Penambahan properti Dom\Element::$outerHTML
- Ekstensi Exif kini mendukung gambar HEIF/HEIC
- Penambahan flag
FILTER_THROW_ON_FAILUREsaat memanggilfilter_var()
Penghentian dan perubahan tidak kompatibel
- Penggunaan nama cast nonstandar seperti
(boolean)dan(integer)dihentikan - Penggunaan backtick (``` ) sebagai alias
shell_exec()dihentikan - Fitur deklarasi ulang konstanta dihentikan
- Pengaturan ini
disabled_classesdihapus - Daftar lengkap perubahan dan penghentian dapat dilihat di dokumen upgrade PHP 8.5
Ringkasan keseluruhan
- PHP 8.5 adalah versi yang meningkatkan pengalaman pengembangan secara menyeluruh, termasuk keterbacaan kode, debugging, pemrosesan atribut, dan manipulasi array
- Operator pipe dan parser URI memberi dampak langsung pada penyederhanaan kode di lingkungan kerja nyata
- Penundaan validasi atribut, fungsi array baru, dan output backtrace adalah perubahan yang meningkatkan kemudahan pemeliharaan dan stabilitas
- Diperlukan penyesuaian kode karena beberapa sintaks nonstandar dan pengaturan lama dihentikan
- Secara keseluruhan, ini adalah rilis yang berfokus pada penguatan konsistensi bahasa dan peningkatan kenyamanan bagi pengembang
Belum ada komentar.