PHP 8.1 Telah Dirilis! Lihat Fitur Baru, Perubahan & Cara Meningkatkan

Dilansir laman resmi PHP, versi ini disebut membawa update besar-besaran pada bahasa pemrograman tersebut. Terdapat sejumlah fitur yang ditambahkan, diubah, dan dihentikan, guna meningkatkan kinerja PHP 8.1 dibanding versi sebelumnya.

Fitur Baru PHP 8.1

 

PHP 8.1 menyediakan banyak fitur baru dan menarik yang perlu Anda ketahui, antara lain:

1. Enum

Enums atau Enumerations adalah tipe data yang berisi sekumpulan nilai atau nilai yang ditentukan oleh pengguna. Dengan Enums, proses validasi untuk nilai disederhanakan.

Berikut ini contoh skrip:

1
2
3
4
5
6
7
enum Status
{
    case Draft;
    case Published;
    case Archived;
}
function acceptStatus(Status $status) {...}

2. Serat

Serat adalah mekanisme untuk mengelola konkurensi atau beberapa perintah yang berjalan secara bersamaan. Anda melakukan ini dengan memulai, menjeda, atau menghentikan perintah tanpa memengaruhi kinerja program secara keseluruhan.

Contoh skrip Fibers adalah sebagai berikut:

1
2
$response = $httpClient->request('https://example.com/');
print json_decode($response->getBody()->buffer())['code'];

3. Properti Hanya Baca

Readonly Properties adalah fungsi dalam PHP untuk menandai properti kelas sebagai readonly. Ini berarti bahwa properti hanya dapat ditulis satu kali, sehingga setiap perubahan lebih lanjut akan menghasilkan kesalahan.

Adanya fitur ini dapat mengurangi boilerplate (penulisan script yang sama berulang-ulang) pada program yang dihasilkan. Contoh implementasi readonly adalah:

1
2
3
4
5
6
7
8
9
class BlogData
{
    public readonly Status $status;
  
    public function __construct(Status $status)
    {
        $this->status = $status;
    }
}

4. Sintaks Callable kelas satu

Sintaks Callable kelas satu adalah sintaks yang digunakan untuk menimpa nilai yang ada dalam suatu fungsi. Anda melakukan ini dengan membuat fungsi callable atau callable.

Di PHP, beginilah tampilan skripnya:

1
2
3
function foo(int $a, int $b) { /* … */ }
$foo = foo(...);
$foo(a: 1, b: 2);

5. Tipe Persimpangan Murni

Pure Intersection Types adalah fungsi yang digunakan untuk mendeklarasikan beberapa constraint atau batasan secara bersamaan. Fungsi ini sangat berguna, terutama jika Anda mengerjakan banyak antarmuka sekaligus.

Jadi, inilah contoh skrip yang berisi Jenis Persimpangan Murni:

1
2
3
4
5
6
7
function count_and_iterate(Iterator&Countable $value) {
    foreach ($value as $val) {
        echo $val;
    }
    count($value);
}

6. Jangan Pernah Kembali Jenis

Never Return Type adalah salah satu jenis return yang berfungsi untuk menghentikan alur kerja program. Caranya dengan menampilkan pesan error melalui fungsi exit, die, trigger_error, dan sejenisnya.

Berikut contoh implementasinya:

1
2
3
4
function redirect(string $uri): never {
    header('Location: ' . $uri);
    exit();
}

7. Konstanta Kelas Terakhir

Final Class Constants adalah fitur yang dapat menandai konstanta atau pengenal suatu nilai. Fitur ini dapat mencegah pewarisan nilai yang tidak diinginkan dari kelas induk ke kelas anak.

Contoh scriptnya adalah sebagai berikut:

1
2
3
4
5
6
7
8
9
class Foo
{
    final public const XX = "foo";
}
class Bar extends Foo
{
    public const XX = "bar"; // Fatal error
}

Perubahan Fitur PHP 8.1

Selain fitur baru, PHP 8.1 juga melakukan perubahan sintaks pada beberapa fitur yang ada, antara lain:

1. Shell Interaktif PHP

Di PHP, Interactive Shell memiliki berbagai fitur untuk navigasi, pelengkapan otomatis, dan pengeditan program.

Di versi PHP sebelumnya, Anda dapat mengakses Shell Interaktif bahkan tanpa mengaktifkan Ekstensi Readline. Akibatnya, semua fitur shell tidak dapat digunakan sama sekali.

Di PHP 8.1, Anda harus mengaktifkan Readline Extension jika ingin menggunakan Interactive Shell. Caranya adalah dengan menginstal paket bernama php8.1-readline dan lanjutkan dengan mengakses shell melalui php -a di terminal.

2. Kesalahan Default MySQLi

PHP 8.1 mengubah metode yang digunakan untuk menampilkan kesalahan di MySQLi sebagai berikut:

1
Fatal error: Uncaught mysqli_sql_exception: Connection refused in ...:...

 

Dengan begitu, setiap error akan menampilkan pesan yang lebih terstruktur sehingga Anda bisa lebih mudah mengatasi error tersebut.

Ini berbeda dengan versi PHP sebelumnya, di mana Anda harus mengatur sendiri metode tampilan kesalahan yang digunakan. Salah satu caranya adalah melalui fungsi mysqli_report.

Penghentian Fitur di PHP 8.1
Meskipun menambahkan banyak fitur baru, masih ada beberapa fitur yang akhirnya dihentikan di PHP 8.1, antara lain:

1. Fungsi Internal Null hingga Non-Nullable

Di PHP 8.1, nilai null tidak dapat diberikan ke variabel lain yang dinyatakan non-null. Jika ini berlanjut, PHP akan menampilkan pesan seperti berikut:

1
2
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to argument of type string is deprecated

Hal ini berbeda pada PHP 8.0, dimana variabel yang telah dinyatakan non-nullable masih dapat menerima variabel null.

2. Versi Driver MySQLi

PHP memiliki ekstensi MySQLi yang disebut mysqli_driver->driver version yang akan menampilkan versi driver MySQLi. Sayangnya, ekstensi ini belum diperbarui sejak 13 tahun yang lalu.

Ekstensi ini tetap menampilkan driver versi lama, meskipun drivernya sendiri sudah banyak mengalami perubahan. Pada akhirnya, PHP 8.1 menghentikan ekstensi ini karena tidak berdampak pada program.

Keuntungan dari PHP 8.1

Berkat optimasi fitur, PHP 8.1 memiliki beberapa keunggulan dibandingkan versi PHP sebelumnya, yaitu:

1. Performa Lebih Cepat

Berdasarkan hasil pengujian benchmark, PHP 8.1 memiliki performa yang lebih cepat sekitar 5-8% dibandingkan PHP 8.0. Ini berkat penambahan fungsi yang disebut caching warisan di Opcache, fitur caching yang dibangun ke dalam PHP.

Caching warisan menghubungkan berbagai jenis kelas dan kemudian melakukan proses caching pada kelas pada waktu yang sama. Kemudian hasil caching tersebut disimpan di shared memory Opcache.

Hasil caching disimpan selamanya, mengurangi jumlah perintah yang diperlukan. Hal ini terbukti dapat meningkatkan kinerja program secara keseluruhan.

2. Dukungan JIT yang Lebih Baik

PHP meningkatkan dukungan untuk Kompiler JIT (Just in Time), sebuah teknik yang memungkinkan program diterjemahkan ke dalam bahasa yang dimengerti komputer saat dijalankan secara real time.

JIT sebenarnya sudah tersedia sejak PHP 8.0, tetapi kemampuannya lebih ditingkatkan di PHP 8.1. Salah satunya adalah penambahan dukungan backend pada arsitektur ARM64.

Keberadaan JIT tidak berdampak positif dalam waktu dekat. Namun ke depannya, ada kemungkinan Anda bisa menggunakan PHP tidak hanya untuk website, tetapi juga untuk keperluan lain seperti mobile apps.

Cara Meningkatkan PHP 8.1

Sebelum memperbarui PHP 8.1 dari versi PHP sebelumnya, pastikan Anda mengikuti langkah-langkah ini. Intinya adalah untuk menghindari kesalahan yang tidak diinginkan.

Cadangkan situs web Anda terlebih dahulu. Tujuannya adalah untuk mengembalikan situs web ke versi sebelumnya, jika terjadi masalah dengan versi baru.
Perbarui plugin, tema, dan fitur pihak ketiga lainnya yang terpasang di situs web Anda.
Periksa kompatibilitas PHP terhadap semua plugin yang diinstal. Caranya dengan mencentang semua fungsi di setiap plugin.
Perbaiki masalah kompatibilitas jika ditemukan kesalahan di plugin. Caranya dengan menghubungi developer masing-masing plugin untuk mendapatkan solusi.
Jika iya, pastikan layanan hosting Anda mendukung PHP 8.1, Niagahoster misalnya. Setelah itu, ikuti langkah-langkah berikut:

Masuk ke Area Anggota kami. Anda akan pergi ke layar berikut:

Klik Layanan Anda > Hosting > Kelola Hosting.

Pilih menu cPanel > All Features.

Pada PHP Selector, pilih menu dropdown > PHP 8.1. Jika sudah, klik Set as current.

Anda telah berhasil mengupgrade PHP 8.1 melalui cPanel kami. Hanya butuh beberapa detik. Mudah dan cepat, bukan?

Apakah Anda Siap Bermigrasi ke PHP 8.1?
PHP 8.1 adalah versi terbaru dari PHP yang menawarkan keunggulan kinerja dibandingkan versi sebelumnya. Hal ini berkat berbagai optimasi yang dilakukan, mulai dari penambahan fitur baru hingga penghentian fitur usang.

Jadi, apakah Anda siap untuk bermigrasi ke PHP 8.1? Eits, jangan lupa backup website, update fitur third-party, dan cek dulu kompatibilitas fiturnya.

Setelah itu, Anda dapat melanjutkan dengan pemutakhiran PHP 8.1. Nah, pastikan layanan hosting yang Anda gunakan mendukungnya. Kabar baiknya adalah bahwa kami mendukung PHP 8.1!

Alhasil, performa website Anda akan meningkat dan pengunjung bisa mengaksesnya lebih cepat.

Selain itu, kami telah menggunakan server tercepat di dunia LiteSpeed ​​Enterprise, memudahkan pengelolaan website melalui cPanel versi terbaru, dan mengamankan website dari serangan malware melalui Imunify360.

Baca juga: Memahami Pentingnya Peran Data Center Setelah Peristiwa Kebakaran

Jika Anda seorang pebisnis yang menjual produk/jasa apapun dan ingin meningkatkan penjualan bisnis, maka Anda perlu memiliki website toko online untuk mempromosikan produk. Anda bisa membuat website toko online di Professional Online Store Website Development Services. Dengan bantuan jasa pembuatan website akan membantu anda untuk mewujudkan website yang anda inginkan.

Terima kasih dan semoga bermanfaat… Sukses untuk kita semua

Postingan Terkait