Apa itu PHP 8?

by Cloudku / May 19, 2021

Apa itu PHP 8?

php8
Apa itu PHP 8? 2

Setelah pada artikel sebelumnya kami membahas tentang hosting pada kesempatan kali ini kita akan membahas tentang mengenai PHP.

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. Beberapa fitur unggulannya adalah Just In Time Compiler, Weak Maps, dan Named Arguments.

Para Cloudku Penasaran ingin tahu fitur selengkapnya dan berbagai kelebihannya, Mari bahas fitur-fitur PHP 8 secara lebih lengkap

Berikut ini adalah fitur-fitur baru pada PHP 8:

1. JIT (Just In Time) Compiler

JIT Compiler merupakan teknik untuk meningkatkan kinerja program yang diinterpretasikan. Sebab sebelum program dijalankan, JIT Compiler sudah mengkompilasi program menjadi kode bahasa mesin. Dengan teknik JIT Compiler, eksekusi kode pun menjadi jauh lebih cepat dibanding interpreter PHP versi sebelumnya.

Pada compiler PHP sebelumnya, interpreter akan melakukan proses mengurai, mengkompilasi dan eksekusi kode. Proses itu dilakukan 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 diteruskan ke CPU untuk dikompilasi.

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 direferensikan lagi.

Dalam PHP, ketika ada variabel dari objek dihapus, maka akan ada pengecekan referensi ke objek tersebut. Kalo tidak ada variabel lain, itu artinya aman untuk menghapus objeknya.

Nah, dengan fitur Weak Maps pada PHP 8, proses penghapusan itu jadi lebih otomatis.

Dengan cara ini, penggunaan memori jadi lebih efisien karena proses caching dilakukan 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 didukung 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 ditetapkan sendiri, Anda dapat menghindari kemungkinan terjadinya error dengan lebih baik. Kedua, informasi tipe yang kurang update pun bisa dihindari.

4. Named Arguments

Pada versi PHP 7.4, Anda perlu memperhatikan urutan pemberian argumen untuk mengirimkan argumen ke sebuah fungsi. Namun pada PHP 8, Anda bisa mengirimkan argumen ke sebuah fungsi menggunakan nama pengenal.

5. 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.

Apakah Anda Siap Beralih ke PHP 8?

PHP 8 menawarkan banyak fitur yang akan memudahkan pekerjaan Anda. Bukan hanya menawarkan penulisan skrip yang lebih ringkas dan jelas, kinerja website dengan PHP 8 diharapkan akan jauh lebih cepat.

Beberapa fitur utama yang ditawarkan oleh PHP 8 beserta fungsinya adalah sebagai berikut:

  • Just In Time Compiler – meningkatkan kinerja program yang diinterpretasikan
  • Weak Maps – membersihkan objek yang sudah tidak direferensikan
  • Union Type – memungkinkan Anda mendeklarasikan variabel dalam beberapa tipe
  • ::Class for Object – merampingkan kode sumber
  • NullSafe Operator – mendeteksi null dalam suatu elemen rantai
  • Constructor Property Promotion – mengurangi penulisan atribut berulang
  • Named Arguments – mengirimkan argumen ke sebuah fungsi menggunakan nama
  • Match Expression – memiliki fungsi mirip Switch tapi dapat mengembalikan value
  • Attributes – memberi keterangan informasi tambahan dan konfigurasi, sehingga dapat dibaca oleh mesin pada deklarasi dalam kode
  • Numeric Strings – mengubah string menjadi angka sebelum melakukan komparasi, sehingga komparasi lebih ketat dan minim error
  • Consistent Type Errors for Internal Function – memunculkan pesan error dan letak error ketika ada kesalahan koding

Leave a Reply

Your email address will not be published. Required fields are marked *

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram