g2QFCKwavghUp2yzjKrIFwEeG13RASCerFTCMH35

Mengenal PHP 8 Serta Fitur Terbarunya

 Mengenal PHP 8 : Fitur-Fitur Baru dan Keunggulannya



PHP 8 telah dirilis 26 November 2020. Tentunya PHP 8 versi terbaru dan terupdate dari PHP ini membuat website anda lebih cepat, aman dan powerful. Mari kita simak semua fitur baru dan keunggulannya.

Apa saja yang baru di PHP 8 ?

PHP 8 merupakan pembaharuan terbaru untuk versi 8 dari bahasa pemrograman ini. Varian terbaru ini menawarkan performa yang lebih baik dan berbagai fitur baru:

  • 1.      Named arguments
  • 2.      Attributes
  • 3.      Constructor property promotion
  • 4.      Union Types
  • 5.      Match Expression
  • 6.      Nullsafe operator
  • 7.      Saner string to number comparisons
  • 8.      Just In Time (JIT) Compiler
  • 9.      WeakMap

1. Named Arguments

Dengan fitur ini anda bisa menentukan parameter yang dibutuhkan dan melewati parameter yang bersifat opsional. Ini menjadikan sebuah function di PHP lebih ringkas. Salah satu kegunaan named arguments adalah bisa digunakan untuk mengatasi error null pada pemrograman.

Contoh : createPerson() 

function createPerson(string $name, int $age, ?string $major = null, ?string $gender = null) {}


Sebelum PHP 8

createPerson('Rina', 24, null, 'wanita');


Menggunakan PHP 8

createPerson(name: 'Rina', age: 24, gender: 'wanita');

 2. Attributes

Dengan Attributes versi terbaru dari php 8 ini , Anda tidak perlu lagi mengurai PHP Docblock dan anda bisa menggunakan struktur pada metadata pada php 8 di native syntax.

Contoh Attributes

Sebelum PHP 8

class PostsController

{

    /**

     * @Route("/api/posts/{id}", methods={"GET"})

     */

    public function get($id) { /* ... */ }

}

 

Dengan PHP 8 anda bisa menambahkan attributes methods

class PostsController

{

    #[Route("/api/posts/{id}", methods: ["GET"])]

    public function get($id) { /* ... */ }

}

 

3. Constructor property promotion

Anda dapat lebih mudah menulis class dengan adanya  bantuan dari constructor property promotion. Kehadiran constructor property promotion menghapus keharusan menulis pola yang sama berkali-kali saat Anda menginput nilai / value pada property class.

Contoh Constructor property promotion

Sebelum PHP 8

<?php

 

class Mobil

{

public string $merek;

public string $warna;

public string $tipe;

public function __construct(

string $merek,

string $warna,

string $tipe

)

{

$this->merek = $merek;

$this->warna = $warna;

$this->tipe = $tipe;

}

}

Dengan Menggunakan PHP 8

<?php

class Mobil

{

public function __construct(

public string $merk,

public string $warna,

public string $tipe

) {}

}

4. Union Types

Dengan fitur ini anda bisa mendeklarasikan lebih dari 1 type didalam classes atau argumets.

Contoh Union Types

Sebelum PHP 8

class Number {

  /** @var int|float */

  private $number;

 

  /**

   * @param float|int $number

   */

  public function __construct($number) {

    $this->number = $number;

  }

}

new Number('NaN'); // Ok

 

Menggunakan PHP 8

class Number {

  public function __construct(

    private int|float $number

  ) {}

}

new Number('NaN'); // TypeError

 

5. Match Expression

Match Expression di PHP 8 hampir sama dengan switch expression, namun terdapat beberapa improvement di dalamnya seperti :

  • ·         expression dapat mengembalikan value
  • ·         tidak membutuhkan break statements
  • ·         supports untuk multiple matching values
  • ·         disediakan comparisons yang aman
  • ·         tidak membutuhkan coercion

Contoh Match Expression

Sebelum PHP 8

switch (8.0) {

  case '8.0':

    $result = "Tidak!";

    break;

  case 8.0:

    $result = "Iya";

    break;

}

echo $result;

//> Tidak!

 

Dengan menggunakan PHP 8

echo match (8.0) {

  '8.0' => "Tidak!",

  8.0 => "Iya",

};

//> Iya

 6. Nullsafe Operator

Dengan fitur ini anda dapat meringkas kode pemrograman untuk mengecekan hasil coding guna menghindari null. Ini menjadikan penulisan untuk error checking menjadi lebih simple.

Sebelum PHP 8

<?php

if ($mahasiswa) {

$matakuliah = $mahasiswa->getMatakuliah();

if ($matakuliah) {

$kodematkul = $matakuliah->getKodeMatkul ();

}

}


Dengan PHP 8

$kodematkul = $mahasiswa?->getMatakuliah()?->getKodeMatkul ();


7.  Saner string to number comparisons

Pada PHP 8 proses perbandingan sebuah string dengan angka lebih ketat untuk menghindari “kejutan” yang dihasilkan dari komparasi yang salah. Sebelum PHP 8 tanpa menggunakan strict comparison operator ( === ) kode berikut bernilai true. Dengan adanya update terbaru ini hasilnya menjadi lebih akurat.

Contoh :

Dengan Menggunakan PHP 7

// PHP 7

0 == ""; // true

Dengan Menggunakan PHP 8

// PHP 8

0 == ""; // false

Anda bisa melihat pada PHP 8 meskipun tidak menggunakan strict comparison operator tapi nilai yang dihasilkan adalah sesuai. Berikut adalah contoh comparison lain.

Comparison    | PHP 7  | PHP 8

------------------------------

 0 == "0"     | true   | true

 0 == "0.0"   | true   | true

 0 == "foo"   | true   | false

 0 == ""      | true   | false

42 == "   42" | true   | true

42 == "42foo" | true   | false

 

8. Just In Time (JIT) Compiler

Ini adalah fitur unggulan terbaru yang ada di PHP 8 JIT merupakan sebuah teknik yang memungkinkan proses compiling program menjadi kode mesin dengan segera sebelum dijalankan. Dengan JIT anda dapat melakukan kompilasi source code yang berlangsung saat runtime coding dilaksanakan. Tujuan compile ini  tak lain untuk mengetahui komponen mana saja yang bisa dikompilasi berulang kali. Jadi, saat JIT berjalan, Anda bisa memerhatikan dari semacam monitor / profiler untuk mngetahui kode-kode yang sedang dieksekusi mesin interpreter. Mesin akan menemukan komponen yang dieksekusi berulang kali dan akan memberinya tanda-tanda pengenal seperti ‘warm’ (kode berulang beberapa kali), dan ‘hot’ (kode berulang dalam jumlah banyak). Hasil kompilasi akan dikelompokkan ke beberapa kolom untuk deindex Proses kompilasi dari JIT masih berlangsung. Data-data yang sudah diindex akan dicompile sekali lagi untuk menemukan komponen yang sama. Jika ada komponen yang sama berhasil dideteksi, maka hasil compile akan dikirim untuk digunakan dalam coding. Hasilnya, struktur coding software Anda akan terhindar dari error interpreted semacam loop.

9. WeakMap

Fitur WeakRefs sudah ditambahkan di PHP 7.4 dan dengan PHP 8, Kemudian, WeakMaps telah disertakan yang merupakan perpanjangan dari fungsi ini. Kegunaan dari WeakMaps dan WeakRefs untuk menghapus objek jika hanya cache yang mereferensikan kelas entitas dari objek tersebut. Hal ini mengarah pada penanganan objek yang bisa menghemat sumber daya.

Penutup

Demikianlah semua fitur baru serta keunggulan yang hadir di PHP 8. Terima kasih telah membaca artikel ini  Semoga artikel ini bermanfaat bagi Anda.

Daftar Referensi :

  • ·         https://www.php.net/releases/8.0/en.php
  • ·         https://stitcher.io/blog/new-in-php-8
  • ·         https://idcloudhost.com/mengenal-php-8-fitur-keunggulan-serta-tips-dan-triknya/
  • ·         https://coretanit.com/fitur-baru-php-8/
  • ·         https://ilmucoding.com/fitur-ulasan-php-8/
  • ·         https://teknocerdas.com/berita/fitur-fitur-baru-php-8/
  • ·         https://www.logique.co.id/blog/2020/12/03/php-8/
  • ·         https://appkey.id/pembuatan-website/web-programming/php-8-adalah/

 



Related Posts

Related Posts

Posting Komentar