Skip to content

emka.web.id

writing knowledge, recording civilization

Menu
  • Home
  • Tutorial
  • Search
Menu

Inilah Sederet Fitur Baru yang Akan ada di PHP 8.4

Posted on June 27, 2024

Para pengembang web, bersiaplah! PHP 8.4 dijadwalkan rilis pada 21 November 2024, dan tentunya membawa segudang fitur baru yang menjanjikan. Artikel ini akan membahas beberapa fitur menarik yang telah diumumkan dan bisa Anda nikmati di versi terbaru nanti.

Kapan PHP 8.4 Dirilis?

Seperti yang disebutkan sebelumnya, PHP 8.4 akan resmi diluncurkan pada 21 November 2024. Namun sebelum tanggal tersebut, versi ini akan melalui 6 bulan fase pra-rilis, mulai dari tahap Alpha, Beta, Release Candidate, hingga akhirnya rilis resmi.

Fitur Baru: Fungsi Pencarian Array

PHP 8.4 akan dilengkapi dengan fungsi pencarian array yang canggih, meliputi:

  • array_find(): Menemukan elemen pertama dalam array yang memenuhi kondisi tertentu.
  • array_find_key(): Menemukan key pertama dalam array yang nilainya sesuai dengan kondisi tertentu.
  • array_any(): Mengembalikan true jika setidaknya ada satu elemen dalam array yang memenuhi kondisi tertentu.
  • array_all(): Mengembalikan true jika semua elemen dalam array memenuhi kondisi tertentu.

Ingin tahu lebih lanjut? Cek artikel kami tentang [Fungsi Pencarian Array di PHP 8.4](link ke artikel tentang fungsi pencarian array di PHP 8.4).

Property Hooks : Kontrol Akses dan Pembaruan Properti

Terinspirasi oleh bahasa pemrograman seperti Kotlin, C#, dan Swift, PHP 8.4 memperkenalkan property hooks. Fitur ini memungkinkan Anda untuk mendefinisikan logika kustom saat mengakses atau memperbarui properti. Sintaksnya terdiri dari dua varian, yaitu short closure dan multi-line closure:

PHP

class Pengguna implements DiberiNama
{
    private bool $telahDiubah = false;

    public function __construct(
        private string $namaDepan,
        private string $namaBelakang
    ) {}

    public string $namaLengkap {
        // Ganti tindakan "baca" dengan logika kustom.
        get => $this->namaDepan . " " . $this->namaBelakang;

        // Ganti tindakan "tulis" dengan logika kustom.
        set {
            [$this->namaDepan, $this->namaBelakang] = explode(' ', $value, 2);
            $this->telahDiubah = true;
        }
    }
}

Dengan property hooks, Anda tidak perlu lagi menulis kode boilerplate untuk getter dan setter properti. Anda bisa menentukan logika kustom untuk mengontrol akses dan pembaruan properti.

Pelajari lebih lanjut tentang property hooks di artikel kami [Property Hooks di PHP 8.4](link ke artikel tentang property hooks di PHP 8.4).

Instansiasi Kelas Tanpa Kurung Ekstra

Sejak diperkenalkannya akses member selama instansiasi, Anda diharuskan untuk membungkus panggilan new MyClass() dengan kurung. Jika tidak, maka akan terjadi error parsing. Sintaks baru yang diusulkan memungkinkan Anda untuk mengakses konstanta, properti, dan metode tanpa kurung ekstra:

PHP

// Membungkus kurung diperlukan untuk mengakses member kelas
$permintaan = (new Permintaan())->denganMetode('GET')->denganUri('/halo-dunia');

// Error parsing PHP (<= PHP 8.3): Sintaks error, token tak terduga "->"
$permintaan = new Permintaan()->denganMetode('GET')->denganUri('/halo-dunia');

Pembaruan ini mengatasi kerumitan yang terjadi saat mengakses member kelas. Dengan sintaks baru, Anda tidak perlu lagi menambahkan kurung atau menggunakan metode konstruktor statis. Perubahan ini juga membuat PHP lebih selaras dengan bahasa pemrograman lain seperti Java, C#, dan TypeScript, yang tidak memerlukan kurung ekstra untuk mengakses member kelas.

Temukan detail lebih lanjut tentang pembaruan ini di artikel kami [Instansiasi Kelas Tanpa Kurung Ekstra di PHP 8.4](link ke artikel tentang instansiasi kelas tanpa kurung ekstra di PHP 8.4).

Pembuatan DateTime dari Cap Waktu Unix Lebih Mudah

Membuat objek DateTime dari cap waktu Unix akan lebih mudah di PHP 8.4. Hal ini berkat hadirnya metode createFromTimestamp(). Metode ini mendukung cap waktu Unix biasa maupun yang mengandung mikrodetik:

PHP

$dt = DateTimeImmutable::createFromTimestamp(1718337072);
$dt->format('Y-m-d'); // 2024-06-14
$dt = DateTimeImmutable::createFromTimestamp(1718337072.432);
$dt->format('Y-m-d h:i:s.u'); // 2024-06-14 03:51:12.432000

Pada versi PHP sebelumnya, terdapat beberapa cara untuk membuat instance DateTime dari cap waktu, seperti metode createFromFormat():

PHP

$dt = DateTimeImmutable::createFromFormat('U', (string) 1718337072);
// DateTimeImmutable @1718337072 {#7948
//   date: 2024-06-14 03:51:12.0 +00:00,
// }

$dt = DateTimeImmutable::createFromFormat('U.u', (string) 1718337072.432);
// DateTimeImmutable @1718337072 {#7950
//   date: 2024-06-14 03:51:12.432 +00:00,
// }

Metode baru createFromTimestamp() di PHP 8.4 menawarkan cara yang lebih ringkas dan mudah untuk membuat objek DateTime dari cap waktu Unix, termasuk yang mengandung mikrodetik.

Pelajari Lebih Lanjut

Ingin menjelajahi lebih dalam tentang fitur-fitur baru PHP 8.4? Kunjungi halaman Persiapan PHP 8.4 di wiki resminya: https://wiki.php.net/

Kesimpulan

PHP 8.4 hadir dengan berbagai fitur menarik yang siap meningkatkan performa dan kemudahan pengembangan web. Dengan fitur-fitur seperti array find functions, property hooks, instansiasi kelas tanpa kurung ekstra, dan pembuatan DateTime yang lebih mudah, PHP 8.4 akan menjadi pilihan ideal bagi para pengembang web.

Tunggu apa lagi? Siapkan diri Anda untuk menyambut PHP 8.4 dan rasakan pengalaman pengembangan web yang lebih efisien dan menyenangkan!

Catatan:

  • Tanggal rilis dan ketersediaan fitur PHP 8.4 dapat berubah sewaktu-waktu.
  • Pastikan untuk selalu memperbarui informasi terbaru dari situs web resmi PHP.
  • Bergabunglah dengan komunitas PHP untuk mendapatkan dukungan dan bertukar informasi dengan sesama pengembang.

Semoga bermanfaat!


Terbaru

  • systemd Officially Adds Support for Rust Components
  • Rocky Linux Creator Builds a Brand-New “Not Linux” Kernel in 11 Days Using AI
  • Building a local AI agent in Workshop on Ubuntu 26.10
  • Omarchy 4.5 RC: 5 New Apps That Actually Look Useful
  • Worth It! Switching from Fedora KDE to Kubuntu
  • I’m Happy Using ‘Herdr’, The Fastest Growing Devtool written in Rust
  • Testing Goose on Omarchy Linux (App & CLI): The Open-Source Solution for Daily Task Automation
  • GNOME Founder Attacks Omarchy Founder as “Lazy, Racist, Ignorant”
  • Why I Stopped Using Plain Command Line Docker and Use Portainer 3.0 To Make My Home Projects Fun Again
  • Why I Switched to a Proper Firewall Box with OPNSense for My Homelab Stuff
  • Fixing Windows Error 0x80070005 Hyper-V Export Access Denied Error the Right Way
  • Fixing Hyper V Export Errors and Building a Better Virtual Machine Setup (error 0x80070002, 0x80070005)
  • Fixing the Dreaded Windows Audio Service Stuck on Stopping Error
  • Windows SIM Error, Unknown error 0xc1420127
  • How I’m Building a Cat Breeding Management App with Python Qt6 + Microsoft Litebox, in 1 Week
  • Why Windows Keeps Nuking Your GPU Drivers (And How to Take Back Control)
  • Why I Finally Ditched Mainstream Windows Cleaners (And Why I Use ‘Kudu’ Instead)
  • AI Made Everything Faster, Including Bad Decisions
  • Raspberry Pi Desktop Available of PC and Mac, Based on Debian 13
  • Why I Stopped Yelling at My PC When Error; Getting Windows 11 Voice Isolation and Access to Actually Work
  • Berobat Kanker ke Malaysia: Berapa Biayanya dan Apa Saja yang Perlu Disiapkan?
  • Stop Sending Every Prompt to the Biggest AI Model You Can Find
  • Stop Building AI Agents from Scratch: My Pick for the Best Native Windows Setup
  • Jev Is Faster and Cheaper, But I Still Recommend Clef. Here’s Why.
  • Weird XCP-NG Bug or Feature? Enable Maintenance Mode = Host Not Enough Memory
  • Vinix OS: Another OS That Want to Beat Linux, Try it!
  • Trying NVX, An Ultra-Light Micro-VM Sandbox from Microsoft
  • Learning NocoDB from Scratch: Creating a Simple Greenhouse App
  • How RHEL 10.2 Quietly Turned Into an Absolute Security Beast
  • Grab Videos from Anywhere with ReClip (Can Running Locally)
  • Canonical: Ubuntu coming soon to Snapdragon X2 Series platforms
  • Finally, wolfSSL adds post-quantum algorithms!
  • How to Run Gemma Embedding Models Using Docker
  • Deploy Nginx Rootful Container with Podman
  • How to Sandboxing Browser on Linux Desktop with Flatpak
  • Google DeepMind Unveils Genie 4: The Most Advanced Real-Time Interactive World Model Yet
  • Building Long-Running AI Agents with Pi Durable: An AI SRE Agent Example
  • Prompt AI: Impressionist Portrait Art of a Woman
  • Prompt AI: Stylish Man Walking Double Exposure Photo
  • Trying Nemotron 3.5 Super VL: NVIDIA’s Open Multimodal Model Built for Agents That Actually See and Act
  • Alvin Tedjo menang jadi Wali Kota di Kanada, wong Indonesia kok iso dadi pemimpin kota gede?
  • Messi vs Ronaldo rebutan gelar Ballon d’Or of All Time, siapa yang paling jago menurut fans?
  • Ini Dia QR Link Dana Kaget 400K, 27 Oktober 2026
  • Fresh! Ini Biodata dan Fakta Unik dari Member No Na
  • Inilah Rekomendasi 10 Drama Jepang Wajib Tonton November 2026

©2026 emka.web.id | Design: Newspaperly WordPress Theme