5 poin oleh GN⁺ 2024-11-22 | 3 komentar | Bagikan ke WhatsApp
  • Mencakup property hooks, visibilitas asimetris, DOM API yang diperbarui, peningkatan performa, perbaikan bug, dan perapian umum
    • Menyediakan property hooks yang mendukung properti terhitung yang dapat dipahami secara native oleh IDE dan alat analisis statis
    • Memperkenalkan visibilitas asimetris yang memungkinkan kontrol independen atas cakupan baca dan tulis properti.
  • Fitur baru
    • Melalui atribut #[\\Deprecated], mekanisme deprecation PHP yang sudah ada kini dapat diterapkan pada fungsi kustom, metode, dan konstanta kelas.
    • DOM API baru mencakup dukungan yang patuh standar untuk parsing dokumen HTML5 serta memperbaiki berbagai bug kompatibilitas lama pada fungsi DOM.
    • Menggunakan objek BcMath\\Number untuk menangani angka presisi arbitrer secara berorientasi objek.
    • Menyediakan fungsi array baru seperti array_find(), array_find_key(), array_any(), array_all().
    • Menyediakan subclass baru untuk PDO: Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite.
    • Properti dan metode dari objek yang baru diinstansiasi kini dapat diakses tanpa tanda kurung.
  • Kelas, antarmuka, dan fungsi baru
    • Lazy Objects baru, implementasi JIT berbasis IR Framework.
    • Menambahkan fungsi request_parse_body(), bcceil(), bcdivmod(), bcfloor(), bcround().
    • Menambahkan metode seperti DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond().
    • Menambahkan fungsi mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst().
    • Menambahkan fungsi pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid().
    • Menambahkan metode ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic().
    • Menambahkan fungsi http_get_last_response_headers(), http_clear_last_response_headers(), fpow().
    • Menambahkan metode XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory().
    • Menambahkan fungsi grapheme_str_split().
  • Deprecation dan breaking changes
    • Ekstensi IMAP, OCI8, PDO_OCI, dan pspell dihapus dari bundle dan dipindahkan ke PECL.
    • Tipe parameter yang secara implisit nullable kini deprecated.
    • Penggunaan _ sebagai nama kelas kini deprecated.
    • Menaikkan 0 ke pangkat negatif kini deprecated.
    • Jika mode yang tidak valid diberikan ke round(), akan terjadi ValueError.
    • Konstanta kelas dari ekstensi kini memiliki tipe.
    • Kelas GMP kini ditetapkan sebagai final.
    • Konstanta dan fungsi terkait MYSQLI kini deprecated.
    • stream_bucket_make_writeable() dan stream_bucket_new() kini mengembalikan instance StreamBucket.
    • Perubahan perilaku exit().
    • Konstanta E_STRICT kini deprecated.
  • Peningkatan performa dan sintaks
    • Peningkatan performa, perbaikan sintaks, dan peningkatan type safety.
    • Disarankan untuk upgrade ke PHP 8.4.

3 komentar

 
carnoxen 2024-11-23

Berkat WordPress dan Laravel, setidaknya ini adalah bahasa yang tidak akan membuat orang mati kelaparan.

 
budaestew 2024-11-23

Bahkan jika WordPress dan Laravel tumbang, ini adalah bahasa yang tidak akan membuat Anda mati kelaparan.

 
GN⁺ 2024-11-22
Komentar Hacker News
  • Alasan $this->countryCode tidak memicu rekursi tak terbatas dijelaskan dalam RFC. Terasa seperti sihir bahwa akses properti di PHP bisa memiliki makna berbeda tergantung konteks.

    • Ada semacam sihir bahasa di mana akses properti diubah menjadi pemanggilan metode.
    • Saya bukan pengguna PHP, tetapi saya khawatir kompleksitas seperti ini ditambahkan ke dalam bahasa.
  • Sebagai programmer PHP, saya khawatir dengan arah PHP. Fitur-fitur bahasa baru meningkatkan kompleksitas bahasa demi manfaat yang meragukan.

    • Property hooks berarti akses properti diubah menjadi pemanggilan metode.
    • Saya pernah memakai fitur serupa di JS dan Perl, tetapi metode yang eksplisit lebih jelas dan lebih mudah dikembangkan.
  • Saya senang PHP masih terus berkembang. Pada 2021 saya sempat khawatir setelah kepergian Nikita Popov, tetapi PHP tetap menjadi bahasa yang baik dengan banyak pengembang yang masih aktif.

  • Yang paling saya nantikan adalah property hooks. Ini fitur yang saya rindukan dari C#.

    • Saya pernah menirunya dengan __get() dan __set(), tetapi itu terasa berat dan membutuhkan banyak anotasi PHPDoc.
  • Saat melihat overloading accessor array, saya menemukan "Property Hooks". Saya terkejut mengetahui bahwa ini adalah fitur yang baru ditambahkan.

    • Saya senang ekspresivitas dan syntactic sugar dari bahasa lain mulai diperkenalkan ke PHP.
  • Saya puas dengan rilis baru PHP ini. Ada banyak peningkatan seperti stack trace yang lebih baik untuk closure, peningkatan performa, dukungan HTML5, lazy objects, dan lainnya.

  • Saya menantikan objek bcmath. Bukan operator aritmetikanya, melainkan karena kini kita bisa melakukan pengecekan tipe data tanpa wrapper class.

  • Saya senang PHP masih terus berkembang. Ini mengingatkan saya pada masa saat memulai sebagai freelancer.

  • Fungsi baru array_find di PHP menunjukkan masalah dalam desain bahasa. Mirip dengan array_search yang sudah ada, tetapi urutan argumennya berbeda.

    • Fitur ini ditambahkan ke PHP karena bahasa lain punya fungsi serupa, tetapi sebagian besar bahasa tidak menjadikannya sebagai fungsi global.
  • Saya tidak memahami "public private(set)". "readonly public" tampak lebih masuk akal.

    • Ini terlihat mirip dengan private(set) di Swift.