2 poin oleh GN⁺ 2025-11-21 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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 bentuk clone($this, ['title' => $title])
    • Namun, saat menyalin properti readonly dari luar, diperlukan penentu akses public(set)
  • 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 static dan tidak dapat mengakses variabel eksternal
  • 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() dan array_last()

    • Mengembalikan elemen pertama dan terakhir dari array dengan sederhana
    • Menggantikan pendekatan lama yang lebih rumit dengan array_key_first() dan array_key_last()
  • Penambahan parser URI baru

    • Menyediakan metode seperti getHost(), getScheme(), getPort(), dan lainnya melalui kelas Uri\Rfc3986\Uri
    • Menyederhanakan manipulasi dan analisis URI

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

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_FAILURE saat memanggil filter_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_classes dihapus
  • 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.

Belum ada komentar.