Fitur-Fitur Baru, Dan Fitur Unggulan PHP 8
PHP 8 telah di luncurkan pada 26 November 2020 lalu. Di bandingkan pendahulunya, versi terbaru bahasa pemrograman ini lebih lengkap, baik itu secara fitur, performa, dan perbaikan pada error.
Apa itu PHP 8? Apa saja fitur barunya? Nah, di artikel ini kami akan menjelaskannya secara lengkap. Yuk simak artikel ini sampai selesai.
Apa itu PHP 8?
PHP 8 adalah pembaruan dari PHP 7.4 yang akan berhenti active supportnya pada November 2021. Berbeda dengan PHP 7.4 yang hanya minor update, PHP 8 adalah sebuah major update dari bahasa pemrograman PHP.
Apa arti dari sebuah major update? Jadi, versi terbaru ini menawarkan performa yang lebih baik dengan adanya berbagai fitur baru. Beberapa fitur unggulannya adalah Just In Time Compiler, Weak Maps, dan Named Arguments.
Penasaran ingin tahu fitur selengkapnya dan berbagai kelebihannya? Mari bahas fitur-fitur PHP 8 secara lebih lengkap!
Baca juga: Cara Membuat Website dengan PHP
10+ Fitur PHP 8 dan Keunggulannya
Berikut ini adalah fitur-fitur baru pada PHP 8 yang tentunya akan memudahkan pekerjaan Anda:
1. JIT (Just In Time) Compiler
JIT Compiler merupakan teknik untuk meningkatkan kinerja program yang di interpretasikan. Sebab sebelum program di jalankan, JIT Compiler sudah mengkompilasi program menjadi kode bahasa mesin.
Dengan teknik JIT Compiler, eksekusi kode pun menjadi jauh lebih cepat di banding interpreter PHP versi sebelumnya. Bagaimana proses interpretasinya?
Pada compiler PHP sebelumnya, interpreter akan melakukan proses mengurai, mengkompilasi dan eksekusi kode. Proses itu di lakukan berulang kali setiap ada request skrip. Hal itu menyebabkan pemborosan ruang CPU.
Namun JIT Compiler PHP 8 memiliki kode mesin aktual yang dapat bekerjasama dengan OPCache. Jadi, saat ada request terhadap skrip dan cache sudah tersedia di OPCache, skrip itu akan langsung di teruskan ke CPU untuk dikompilasi.
Selain itu, JIT Compiler PHP 8 memiliki dua mesin kompilasi JIT, yaitu function dan tracing. JIT berbasis function akan mengoptimalkan kode hanya dalam satu fungsi lingkup saja. Sedangkan, JIT berbasis tracing mengoptimalkan seluruh pelacakan dan pencarian kode.
Ketika fitur JIT Compiler tersebut di aktifkan, fitur itu dapat meningkatkan kinerja aplikasi berbasis PHP sebesar 3-5%. Sedangkan performa aplikasi standar PHP akan meningkat 3 kali lebih cepat.
2. Weak Maps
Weak Maps adalah struktur data yang dapat menampung objek. Berbeda dengan Weak Reference pada PHP 7.4, Weak Maps juga dapat membersihkan cache dari objek yang tak di referensikan lagi.
Dalam PHP, ketika ada variabel dari objek di hapus, maka akan ada pengecekan referensi ke objek tersebut. Kalo tidak ada variabel lain, itu artinya aman untuk menghapus objeknya.
Pada contoh di atas saat referensi ke Product1 tidak ada maka, referensi di $cache
Weak Map langsung dihapus termasuk yang ada pada objek Review. Dengan cara ini, penggunaan memori jadi lebih efisien karena proses caching di lakukan tanpa tambahan logic lain seperti destructor dan lainnya.
3. Union Type
Union type adalah suatu nilai yang memiliki representasi sama di sebuah posisi dan dapat menerima beberapa jenis variabel. Nah, karena PHP mendukung Union Type, Anda bisa mendeklarasikan variabel dalam beberapa tipe.
- Type atau null, menggunakan sintaks khusus
?Type
- array atau Traversable, menggunakan tipe khusus iterable
Pada PHP versi sebelumnya, jenis penyatuan arbitrer tidak di dukung oleh bahasa itu. Sehingga programmer cenderung menggunakan anotasi PHPDoc sebagai solusi.
Untungnya saat ini union type telah hadir secara native di PHP 8. Jadi, Anda tak perlu lagi menggunakan anotasi PHPDoc. Anda bisa menetapkan beberapa tipe parameter dengan sintaks T1|T2|… di semua posisi.
Ada beberapa keuntungan dari union type. Pertama, karena tipe nilai parameter yang bisa di tetapkan sendiri, Anda dapat menghindari kemungkinan terjadinya error dengan lebih baik. Kedua, informasi tipe yang kurang update pun bisa di hindari.
Dengan adanya fitur Union Type ini, penulisan sintaks menjadi lebih sederhana dan membuat deklarasi tipe lebih mudah di baca.
4. Penggunaan ::Class For Objects
Pada versi sebelumnya, Anda harus menggunakan get_class() untuk menetapkan kelas ke objek. Namun pada PHP 8, Anda dapat menggunakan ::class to objects untuk memastikan kode sumber jadi lebih ramping.
5. NullSafe Operator
Sebelumnya, untuk pengecekan nilai null di PHP 7 Anda perlu memasukkan kode is_null pada beberapa baris kode berulang kali. Di bawah ini adalah contohnya:
PHP 7
<?php $user = get_user( $id ); if (! is_null ( $user )) { $address = $user ->getAddress(); if (! is_null ( $address )) { $state = $address ->state; If (! is_null ( $state )) { // And so on. } } } } |
Nah, dengan PHP 8 Anda bisa menggunakan fitur NullSafe Operator. Fitur ini memungkinkan Anda melakukan metode pemanggilan operator ?-> untuk mengecek nilai null.
$country = $session ?->user?->getAddress()?->country; |
Artinya, dengan menggunakan fitur ini, Anda bisa mendeteksi null dalam suatu elemen rantai. Jika di temukan null dalam rantai itu, maka proses eksekusi akan langsung di batalkan. Misalnya seperti ini:
<?php $bestSaleItem = $catalog ?->getProducts(get_seasonal_type())?->mostPopular(10)[5]; |
Jika $catalog adalah null, get_seasonable_type() tidak akan dipanggil. Seluruh rantai akan berhenti setelah mendeteksinya dan langsung menetapkan $bestSaleItem ke null.
Editor : Filly Agasta