Daftar Fitur Terbaru Di PHP 8 Dan Penjelasannya

PHP 8 merupakan major update terbaru dari PHP 7.4, yang artinya dalam versi terbaru ini terdapat ...
Penulis
Admin
Kategori
Website
Estimasi
4 menit baca
Dilihat
993
Posting
09 Aug 2022
Daftar Fitur Terbaru Di PHP 8 Dan Penjelasannya PHP 8 merupakan major update terbaru dari PHP 7.4, yang artinya dalam versi terbaru ini terdapat fitur baru yang dapat meningkatkan performa aplikasi website Daftar Fitur Terbaru Di PHP 8 Dan Penjelasannya
2022-11-25

PHP 8 rilis di tahun 2020 pada akhir bulan november yang menawarkan banyak penambahan fitur tambahan dan peningkatan performa.

PHP 8 merupakan major update terbaru dari versi 7.4, yang artinya dalam versi terbaru ini terdapat tambahan fitur baru yang dapat meningkatkan performa aplikasi seperti Named Arguments, JIT (Just In Time Compiler), Nullsafe Operator dan lainnya.

Kali ini, kita akan membahas apa saja perubahan dan peningkatan dalam update terbarunya kali ini. Dalam dokumentasi resminya, disertakan juga bagaimana cara mengupgrade dari versi 7.4 ke 8, jika kalian bingung silahkan langsung ke dokumentasi resminya.

 

Mengenal Fitur Baru Dan Keunggulan PHP 8

 

 

1. Attribute

Attribute dikenal juga sebagai anotasi yang menyediakan mekanisme untuk menambahkan metadata kedalam basis kode. Attribute juga dapat digunakan dengan class, method, function dan property.

Ini merupakan cara untuk memberi keterangan informasi tambahan serta konfigurasi sehingga dapat dibaca oleh mesin dalam kode kalian.

Contoh perbedaan pengunaan attribute dalam PHP 8:

class BlogController
{
    // PHP 7
    /**
     * @Route("/api/posts/{id}", methods={"GET"})
     */
    public function getPost($id) { /* ... */ }

    // PHP 8
    #[Route("/api/posts/{id}", methods: ["GET"])]
    public function getPost($id) { /* ... */ }
}

Kalian dapat memeriksa dan membuat attribute yang ditentukan didalam class, method, function atau komponen kode lainnya. Attribute berguna dalam kerangka kerja dan library, dimana akan membantu mengabstraksi pemetaan dalam komponen aplikasi.

 

2. Named arguments

Named arguments berfungsi untuk menyelesaikan berbagai permasalahan saat penulisan kode dan dapat mengatasi error null pada koding kalian.

Function ini memungkinkan kalian untuk meneruskan parameter kedalam metode dan fungsi konstruksi seperti array.

function contoh( ?string $a = null , ?string $b = null , ?string $c = null )  : void ;

Contoh perbedaan penggunaan named arguments dalam PHP 8:

//PHP 7
contoh(null, null, "saya");

//PHP 8
contoh(c: "saya");

Hal ini dapat membuat fungsi dengan banyak argumen menjadi tidak berulang dan sangat mudah untuk dimaintenance. Dengan update named arguments terbaru pada PHP 8, proses koding kalian akan jadi lebih mudah dan dapat memperjelas kode itu sendiri.

 

3. Match expression

Match expression yang terbaru merupakan alternatif yang lebih aman daripada switch, Itu karena match expression tidak memerlukan pengunaan case dan break, match expression juga mendukung pengkondisian gabungan dan akan membuat kode menjadi ringkas.

Contoh syntax switch dalam PHP 7:

//PHP 7
switch (8.0) {
  case '8.0':
    $result = "Apakah yang ini?";
    break;
  case 8.0:
    $result = "Atau yang ini?";
    break;
}
echo $result;
//> Apakah yang ini?

//PHP 8
echo match (8.0) {
  '8.0' => "Apakah yang ini?",
  8.0 => "Atau yang ini?",
};
//> Atau yang ini?

Pengunaan switch menunjukan hasil value dari tipe data yang berbeda yaitu Apakah yang ini? sedangkan pada match expression menunjukan tipe data yang sesuai atau sama yang menghasilkan output Atau yang ini?, jika data tidak sama maka akan menghasilkan output error.

 

4. Saner string to number comparisons

Dalam updatenya yang terbaru, perbandingan antara string dan angka sekarang lebih ketat dan tidak lagi setara dengan string kosong atau perbandingan seperti 123 == '123'.

Sejumlah perubahan yang ditambahkan kedalam hal ini bertujuan untuk meningkatkan konsistensi dalam melakukan pemeriksaan yang telah diterapkan.

Contoh perbandingan antara PHP 7:

0 == '0' // true

Contoh perbandingan dalam PHP 8:

0 == '0' // false

Perbandingan dalam PHP 7, bahwa 0 merupakan integer yang sama dengan '0' akan menghasilkan output true, namun dalam updatenya yang terbaru,, terlihat sistem tipe data menunjukan nilai yang kompatible dan diverifikasi dengan benar yang akan menghasilkan output false.

Secara keseluruhan, perubahan ini mengacu tipe data yang konsisten yang dapat menghilangkan bug.

 

5. Just in time compiler

JIT atau Just in time compiler merupakan sebuah compiler yang menginterpretasikan kode baris perbaris agar dapat melakukan kinerja lebih cepat dibandingkan versi sebelumnya.

Sebelum PHP 8 dirilis, kelemahan dari bahasa pemrograman ini adalah masalah compilingnya dan bahasa pemrograman yang interpreted.

Dalam update terbarunya, terlihat sebuah peningkatan yang cukup signifikan yang telah dinantikan oleh banyak developer PHP, hal ini dikarenakan dengan adanya fitur baru ini, sekarang dapat digunakan untuk aplikasi website yang kompleks.

Tidak sama seperti versi sebelumnya, bahasa pemrograman ini sangat tidak cocok untuk pembuatan aplikasi yang kompleks karena kelemahan compiling itu tadi.

Dalam proses JIT berlangsung, data-data yang sudah diindex akan dicompile sekali lagi untuk menemukan komponen yang sama, jika terdapat komponen yang sama dan terdeteksi, maka hasil compile akan digunakan dalam coding. Dan hal ini akan mencegah yang namanya loop.

 

6. Nullsafe operator

Dalam versi sebelumnya, dalam pengecekan nilai null atau tidak, kalian harus menginputkan function is_null didalam baris kode. 

Mungkin dari kalian menyadari, dengan melakukan pengecekan berulang kali membuat kode tidak terstruktur atau membuat kode menjadi panjang dan tidak efisien.

Hal tersebut dilakukan untuk memastikan variable tersebut bernilai null atau tidak agar tidak menampilkan error kedalam browser dan program berjalan normal.

Contoh pengecekan kondisi null pada PHP 7:

$negara =  null;

//PHP 7
if(!is_null($session)) {
    $user = $session->user;
 
    if(!is_null($user)) {
        $alamat = $user->ambilAlamat();
 
        if(!is_null($alamat)) {
            $negara = $alamat->negara;
        }
    }
}

//PHP 8
$negara = $session?->user?->ambilAlamat()?->negara;

Dalam updatenya yang terbaru, pengecekan kondisi null terlihat lebih ramping dan sederhana dengan memanggil operator ?-> atau pemanggilan berantai, jika pengecekan null terdapat pada awal eksekusi maka proses akan langsung dibatalkan dan akan menghasilkan nilai null.

 

7. Union types

Union types merupakan dua tipe data yang dapat disatukan, penyatuan ini dapat menerima dengan pengembalian atau return value dari beberapa jenis yang berbeda. 

Contoh pengunaan union types pada PHP 7:

class Angka {
  //PHP 7
  /** @var int|float */
  private $angka;

  /**
   * @param float|int $angka
   */
  public function __construct($angka) {
    $this->angka = $angka;
  }

  //PHP8
  public function __construct(private int|float $angka) {}

}
new Angka('NaN'); // Ok

Dalam versi sebelumnya, penyatuan arbiter tidak didukung, oleh karena itu kebanyakan developer PHP mengunakan anotasi docbloc sebagai solusi dengan menyimpannya didalam komentar untuk menghasilkan return dari valuenya.

Dalam update terbarunya, union type telah hadir dan developer tidak lagi mengunakan docbloc dan dapat langsung digunakan kedalam property atau methodnya. Dengan fitur terbaru union type ini, penulisan syntax lebih sederhana dan lebih mudah dibaca.

 

8. Constructor property promotion

Property class dengan nilai awal adalah salah satu peran constructor yang paling sering. Kode yang biasa dalam PHP 7:

class Contoh {
    //PHP 7
    protected ?string $properti;
 
    public function __construct(?string $properti = null) {
        $this->properti = $properti;
    }

    //PHP 8
    public function __construct ( 
        protected string $properti = null 
    )
}

Dalam update terbarunya, telah ditambahkan dukungkan untuk Constructor Property Promotion dengan syntax yang singkat yang memungkinkan kalian untuk mengabungan definisi dari property, typehinting, dan population didalam constructor. Terlihat syntax dalam PHP 8 tidak melakukan pengulangan dan pengunaan yang mudah jika akan menambahkan property constructor tambahan kedepannya.

 

Fitur baru dan keunggulan php 8

namasteui.com

 

Kesimpulan

Major update besar-besaran dari PHP 8 menawarkan fitur yang semakin memudahkan developer dalam menulis baris-baris kode yang efisien, ringkas dan mudah serta meningkatkan performa dengan fitur JIT (Just In Time Compiler) yang keren.

Semoga menjadi informasi yang bermanfaat sebelum kalian memutuskan untuk mengupgrade versi PHP kalian ke versi 8.

Share