Fitur baru di PHP 5.6
Thu Jul 24, 2014 · 619 words

All the new feature is awesome!

Baru-baru ini, team core PHP baru saja merilis versi terbaru dari PHP, yakni PHP 5.6.0 Beta 1. Saya mencoba untuk mengcompile nya di komputer saya dan mencicipi fitur baru dari PHP 5.6 ini. Ternyata cukup banyak fitur baru di PHP versi ini yang sangat membantu untuk pengembangan aplikasi yang kita buat. Berikut adalah ulasan saya.
PHP

Constant Scalar Expressions

Sebelum PHP 5.6 deklarasi constant hanya bisa digunakan dengan nilai static. Di PHP 5.6, constant dapat dideklarasikan dengan menggunakan aritmatika dasar ataupun struktur logika dasar.

<?php  
#save as const.php
class Work {  
  const SALARY = 2000;
}

var_dump(Work::SALARY);  
<?php  
#save as const56.php
class Work {  
  const BONUS = 500;
  const SALARY = 2000 + self::BONUS;
}

var_dump(Work::SALARY);  

Bisa dilihat bahwa pada file const56.php, constant SALARY dideklarasikan dengan penjumlahan. Hal ini bisa dilakukan di PHP 5.6, sedangkan di PHP 5.5 akan terjadi syntax error.

Argument Unpacking

Ketika kamu menggunakan sintaks terbaru PHP 5.6 yaitu ... (ya, tanda titik tiga kali), kamu bisa mengubah array dan transversable object menjadi argument list. Di bahasa pemrograman Ruby, sintaks ini dikenal sebagai splat operator. Untuk lebih mudahnya lebih baik kita lihat contoh kode berikut:

<?php  
function jumlah($a, $b, $c) {  
  return $a + $b + $c;
}

# Berjalan di semua PHP 5
jumlah(1, 2, 3); # Returns 6  

Lalu bagaimana jika angka yang saya miliki berada di dalam sebuah array ?

<?php  
function jumlah($a, $b, $c) {  
  return $a + $b + $c;
}
$number = [1,2,3]

#disini kita menggunakan fungsi call_user_func_array
#berjalan di semua versi PHP 5
call_user_func_array('jumlah', $number); # Returns 6

#menggunakan splat operator
#berjalan di PHP 5.6
jumlah(...$number);  

Bisa kamu lihat bahwa dengan menggunakan splat operator, kode yang kita miliki terlihat lebih rapi, dan kita tidak perlu memanggil fungsi tambahan dengan nama yang panjang dan jelek :D.

Variadic Function

Untuk kamu yang masih bertanya-tanya apa itu variadic function, artinya adalah sebuah fungsi yang menerima berapapun jumlah variabel yang diberikan. sebelum PHP 5.6, hal ini dimungkinkan dengan menggunakan func_get_args(), sedangkan di PHP 5.6 menggunakan splat operator (iya, splat operator yang disebutkan di poin di atas). Untuk lebih mudahnya saya akan kembali memberikan contoh menggunakan fungsi jumlah.

<?php  
# di semua versi PHP 5
function jumlah($integer) {  
  return $integer + array_sum(array_slice(func_get_args(), 1));
}

# di PHP 5.6
function jumlah(...$integer) {  
  return array_sum($integer);
}


jumlah(1); # Returns 1  
jumlah(1, 2); #Returns 3  
jumlah(1, 2, 3); # Returns 6  

Dengan sintaks baru ini, semua variabel yang diinputkan ke fungsi jumlah akan disimpan kedalam variabel integer dalam bentuk array. Kita tidak perlu lagi menggunakan func_get_args().

Selamat Tinggal Raw Post Data

Sejauh ini, PHP 5.6 telah menghilangkan 2 fitur lama, salah satunya adalah $HTTP_RAW_POST_DATA.

File Upload Lebih Besar

Sebelum PHP 5.6, upload file lebih dari 2 GB tidak memungkinkan karena PHP masih sangat buruk dalam menghandle dan memprosesnya. Namun, sekarang di PHP 5.6 sudah membuat hal ini menjadi mungkin. Sebagai tambahan, penggunaan memori di POST data sudah berkurang hingga 2 sampai 3 kalinya. Hal ini dikarenakan dihilangkannya raw post data seperti yang telah disebutkan diatas

Build in Debugger

Pada versi ini juga, PHP telah membundle debugger yang bernama PHPDBG. debuggerini dibundle bersama SAPI (Server API) dan dapat digunakan dari command line interface ataupun secara langsung dari code php kamu. Pelajari lebih lanjut tentang PHPDBG disini.

Fitur Baru Zip

Zip library di PHP juga mengalami penambahan fitur. Salah satu yang paling menarik adalah ZipArchive::setPassword($password) yang memungkinkan kita untuk memberi password pada file zip.

Kesimpulan

PHP 5.6 hingga saat ini masih belum ditentukan kapan versi stabilnya akan dirilis. Akan tetapi, fitur-fitur terbarunya cukup menjanjikan. Semoga ulasan singkat saya dapat membuat kamu untuk langsung mencoba PHP 5.6 begitu dirilis versi stabilnya. Jika ada kesalahan pada ulasan saya, mohon beritahu saya lewat komentar di bawah ini.


back · he thought · he could · so he did · main