Tampilan PHP 7.4 untuk Pengembang WordPress

PHP 7.4 dijadwalkan rilis pada 28 November 2019. WordPress 5.3 juga akan menyertakan beberapa commit yang membahas fitur-fitur usang.

Kecil kemungkinan bahwa sebagian besar pengembang WordPress plugin dan tema akan dapat menggunakan fitur-fitur baru PHP 7.4 untuk sementara waktu kecuali ketika bekerja pada pengaturan di mana mereka memiliki beberapa kontrol terhadap lingkungan.

Baca Juga: Cara Upgrade CentOS 7 ke CentOS 8

Mengingat keengganan WordPress untuk meningkatkan versi PHP minimum ke versi terbaru yang didukung, mungkin perlu bertahun-tahun sebelum aman untuk menggunakan fitur baru. Namun, pengembang harus memastikan plugin dan tema mereka kompatibel dengan 7.4. Ini juga praktik yang baik untuk mengikuti perkembangan fitur saat ini.

WordPress 5.2 menabrak persyaratan minimum untuk PHP 5.6 dengan rekomendasi dari PHP 7.3. Berikut ini adalah rincian untuk statistik penggunaan PHP saat ini untuk pemasangan WordPress:

    • PHP 7.3 – 9.6%
    • PHP 7.2 – 22.2%
    • PHP 7.1 – 13.5%
    • PHP 7.0 – 14.9%
    • PHP 5.6 – 25.7%

Saat ini, PHP 7.2 dan 7.3 adalah satu-satunya versi yang menerima dukungan aktif. PHP akan menghentikan dukungan keamanan untuk versi 7.1 pada 1 Desember.

Fitur baru

PHP 7.4 mencakup sejumlah fitur baru yang akan membuat kode penulisan lebih mudah. Berikut ini adalah ikhtisar kecil dari beberapa fitur yang kemungkinan akan berguna untuk plugin WordPress dan pembuat tema.

Properti yang Diketik

PHP pertama kali memperkenalkan tipe mengisyaratkan 5.0 dan terus meningkatkan fitur. PHP 7.0 memperkenalkan deklarasi tipe kembali. PHP 7.4 meningkatkannya dan memungkinkan pengembang untuk mendeklarasikan tipe untuk properti kelas. Ini memungkinkan pengembang memastikan tipe data yang ditugaskan ke properti tertentu selalu tipe data itu.

Dalam contoh berikut, properti $id hanya dapat diberi integer dan properti $title sebagai string. Mencoba menetapkan tipe data yang salah akan menghasilkan kesalahan fatal.

class Event {
    public int $id;
    public string $title;
}

Arrow Functions

Banyak pengembang telah berteriak-teriak untuk fungsi panah yang mirip dengan JavaScript. Mereka cukup manis untuk digunakan. Namun, fungsi panah PHP, juga disebut “penutupan pendek,” sedikit berbeda. PHP 7.4 memperkenalkan kata kunci fn (sekarang kata kunci yang dipesan). Penutupan pendek hanya dapat berisi satu ekspresi dan tidak memiliki kata kunci kembali. Mereka tidak sekuat JavaScript sepupu mereka, tetapi mereka menawarkan solusi cepat untuk beberapa skenario.

Misalnya, cuplikan kode berikut ini menunjukkan dua cara berbeda untuk membangun array email pengguna dari kumpulan objek pengguna.

// Old way, but still acceptable.
$value = array_map( function( $user ) {
    return $user->user_email;
}, $users );

// New way.
$value = array_map( fn( $user ) => $user->user_email, $users );

Unpacking Inside of Arrays

Pembongkaran argumen diperkenalkan di PHP 5.6, jadi ini mungkin masih wilayah asing bagi banyak pengembang di ruang WordPress. Itu adalah fitur yang tak ternilai di beberapa proyek saya.

PHP 7.4 memungkinkan pengembang untuk membuka paket array dalam array. Ini harus lebih cepat daripada array_merge() karena operator penyebaran (…) adalah konstruksi bahasa daripada fungsi.

Pertimbangkan contoh berikut menyuntikkan array dua warna dalam array warna yang lebih besar.

$colors_a = [ 'green', 'blue' ];
$colors_b = [ 'red', ...$colors_a, 'yellow', 'purple' ];
// [ 'red', 'green', 'blue', 'yellow', 'purple' ];

Null Coalescing Assignment Operator


Contoh berikut menunjukkan cara memeriksa variabel $ product [‘id’]. Jika diatur, jangan lakukan apa pun. Jika tidak, tetapkan nilai di sebelah kanan. Anda dapat melihat evolusi kode antara versi PHP. Jauh lebih mudah untuk menulis dalam 7.4.
// Pre-PHP 7.0.
$product['id'] = isset( $product['id'] ) ? $product['id'] : 0;

// PHP 7.0.
$product['id'] = $product['id'] ?? 0;

// PHP 7.4.
$product['id'] ??= 0;

Deprecated Features

PHP 7.4 akan mencabut beberapa fitur. Plugin dan penulis tema ingin berkonsultasi dengan daftar lengkap untuk menentukan apakah mereka harus memperbarui kode yang sudah usang. Saya memilih beberapa item yang saya lihat dalam plugin dan kode tema selama beberapa tahun terakhir. Sebagian besar fitur usang lainnya tidak mungkin dalam basis kode saat ini.

Operator Ternary Bersarang Tanpa Parenthesis

Operator ternary bersarang umumnya adalah sesuatu yang harus Anda hindari sebagai pengembang. Serius. Jangan menulisnya. Mereka sulit untuk diikuti dan rentan terhadap bug karena kesalahan manusia. Namun, jika Anda akan berhati-hati terhadap angin dan mengabaikan saran yang baik, setidaknya gunakan tanda kurung. PHP 7.4 tidak memiliki terary bersarang yang tidak digunakan lagi.

// Not OK (deprecated).
$value = $a ? $b : $c ? $d : $e;

// OK.
$value = ( $a ? $b : $c ) ? $d : $e;

// OK.
$value = $a ? $b : ( $c ? $d : $e );

Using array_key_exists() on Objects

Pengembang tidak boleh menggunakan array_key_exists () pada objek hanya karena objek bukan array. Alih-alih, gunakan fungsi property_exists () yang lebih tepat atau isset().

// Not OK (deprecated).
if ( array_key_exists( $property, $object ) ) {}

// OK.
if ( property_exists( $object, $property ) ) {}

// OK.
if ( isset( $object->$property ) ) {}

rray and String Offset Access With Curly Braces

Menggunakan kurung kurawal untuk akses array dan string offset sedikit lebih jarang, tetapi saya sudah melihatnya di alam liar beberapa kali. Pastikan Anda menggunakan tanda kurung siku seperti [] alih-alih tanda kurung keriting seperti {}.

// Not OK (deprecated).
$value = $a{ $key };

// OK.
$value = $a[ $key ];

Sumber: wptavern