Mengintip Beberapa Fitur Baru di PHP 8+

Mengintip Beberapa Fitur Baru di PHP 8+

Jika kalian pernah belajar kelas backend di Dicoding, harusnya sudah tidak asing dengan JavaScript. Selain JavaScript, salah satu bahasa pemrograman yang banyak digunakan untuk membangun backend web adalah PHP. Pertama kali diciptakan oleh Rasmus Lerdorf pada tahun 1994 dengan kepanjangan Personal Home Page. Barulah kemudian pada sekitar tahun 1997, kepanjangan PHP berubah menjadi PHP: Hypertext Preprocessor seperti yang kita kenal saat ini. Menarik ya, karena nama PHP ternyata berupa singkatan rekursif.

Sejak bertahun-tahun lalu, tidak sedikit developer yang beranggapan PHP adalah bahasa jadul, memiliki banyak kelemahan, dan akan segera mati. Namun, faktanya masih banyak situs web di luar sana yang dibangun dengan PHP. Berdasarkan data dari W3Techs, PHP masih digunakan di lebih dari 74% situs web di dunia. Selain itu, survei The State of Developer Ecosystem 2022 dari JetBrains menunjukkan PHP berada di peringkat 7 bahasa pemrograman terfavorit yang digunakan oleh developer.

PHP mulai berbenah semenjak rilis mayor PHP 7.4. Banyak perbaikan dan fitur baru yang dihadirkan untuk meningkatkan performa dan pengalaman developer. Bahkan di akhir 2021, The PHP Foundation dibentuk untuk memastikan keberlangsungan pengembangan bahasa ini. Saat ini rilisan terbaru yang stabil untuk digunakan adalah PHP 8.2. Apa saja fitur baru yang menarik untuk kita implementasikan? Berikut adalah beberapa di antaranya.

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Constructor Property Promotion

Di versi sebelumnya, untuk mendefinisikan properti dari sebuah kelas secara eksplisit, kita perlu menuliskannya di bagian atas kelas. Kemudian ketika ingin mengeset nilainya saat kelas diinstansiasi, kita perlu menulis cukup banyak kode, tergantung seberapa banyak properti yang dimiliki kelas tersebut. Contohnya seperti ini.


Selain panjang, kode di atas juga banyak mengulang kata kunci yang sama, seperti name, birthday, dan address. Pada PHP 8, kode di atas dapat diringkas menggunakan constructor property promotion. Fitur ini memungkinkan kita menulis class constructor sekaligus menginisiasi dan mengeset nilai properti dengan sintaks yang jauh lebih pendek sehingga kode di atas dapat kita ringkas menjadi seperti berikut.


Baca: RFC Constructor Property Promotion

Named Arguments

Pernahkah kamu menemukan fungsi atau method dengan banyak parameter? Saking banyaknya, kadang kita sampai lupa urutan parameternya. Belum lagi jika ada parameter dengan nilai default dan kita tidak ingin mengubahnya. Di versi 7 dan sebelumnya, kita harus menuliskannya secara urut. Gambaran sederhananya, perhatikan kode berikut.


Dari contoh kode di atas, bagaimana jika ingin memanggil fungsi addPerson yang berisi nama dan alamat saja? Tentu kita perlu memberikan nilai null secara eksplisit untuk parameter birthday.


Dengan named arguments, kita bisa memanggil fungsi tersebut tanpa perlu menuliskan nilai untuk parameter yang tidak ingin kita beri nilai.


Selain itu, kita juga bisa membuat menjalankan fungsi tersebut dengan urutan parameter yang tidak harus sama ketika fungsi tersebut didefinisikan.


Baca: RFC Named Arguments

Enums

Enum atau enumeration adalah salah satu model data untuk menyimpan sekelompok opsi yang bernilai unik. Jika kalian pernah menggunakan konstanta, sederhananya enum ini mengelompokkan beberapa konstanta dalam satu wadah/konteks yang sama. Misalnya, kita ingin menyediakan beberapa opsi dokumen identitas, seperti KTP, paspor, dan SIM. Sebelum adanya fitur enum, developer PHP biasanya menggunakan class constant atau memanfaatkan library seperti spatie/enum atau myclabs/php-enum.


Sekarang kita dapat menulis object di atas menjadi sebuah enum seperti berikut.


Jika dilihat sekilas, kode di atas memang tidak terlalu berbeda. Lalu, kenapa lebih baik menggunakan enum? Enum membantu kita menulis kode yang lebih mudah di-maintain dan mengurangi potensi kesalahan. Misalnya, tanpa enum, kita bisa saja membandingkan nilai sebuah konstanta dengan string. Ketika menggunakan string, akan lebih sulit mengecek di mana saja string tersebut digunakan. Terlebih jika kita ingin me-refactor atau mengubah string tersebut.

Baca: RFC Enumeration

Match Expressions

Seperti halnya dengan enumeration di atas, PHP juga mengambil inspirasi dari bahasa pemrograman lain untuk menerapkan fitur ini. Di bahasa lain mungkin kita lebih familier dengan istilah pattern matching. Fitur ini sebenarnya mirip dengan switch yang sudah lama tersedia. Bedanya, match melakukan perbandingan nilai dengan lebih aman karena menggunakan strict comparison (===). Selain itu, match juga mendukung nilai kembalian sehingga kita tidak perlu mendefinisikan variabel di tiap-tiap case.


Ketika menggunakan match, kita perlu memastikan bahwa nilai yang akan dibandingkan memiliki tipe data dan nilai yang sama. Ini akan membantu developer untuk menulis kode dengan lebih aman dan tidak mengagetkan ketika hasilnya tidak sesuai ekspektasi.


Baca: RFC Match Expressions


Nah, itulah beberapa fitur baru di PHP 8+ yang bisa mulai digunakan di projek yang kita bangun. Kalian sudah pakai yang mana saja? Atau adakah fitur lain yang tak kalah menarik? Mari diskusi di kolom komentar.


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.