Fitur Baru dan Peningkatan PHP 7.2.0
Diterbitkan: 2018-03-03Rilis baru PHP 7.2.0 menyertakan banyak tambahan hebat. Ini menawarkan lebih banyak fitur, peningkatan baru, dan fungsionalitas yang lebih baik. Ini memungkinkan pengguna untuk menulis kode yang lebih baik dan menggunakan beberapa fitur bahasa yang menarik yang belum pernah ada sebelumnya. Dalam posting ini, kita akan melihat aspek-aspek terbaru yang diperkenalkan dalam iterasi terbaru PHP.
Pembaruan menawarkan banyak peningkatan baru. Muncul dengan banyak fitur yang memastikan pengkodean yang lebih baik. Fitur-fitur baru di PHP 7.2.0 meliputi:
- Petunjuk pengetikan objek
- Menghitung berbagai objek yang tidak dapat dihitung
- Konversi kunci numerik dalam gips/objek array
- Ekstensi mcrypt dihapus
- Argon2 dalam hash kata sandi
- HashContext sebagai objek
- Konstanta TLS yang lebih baik ke berbagai nilai waras
- Ekstensi natrium baru
Seperti yang kita ketahui, para web developer pada umumnya suka atau tidak suka menggunakan bahasa PHP. Siapa pun yang benar-benar menikmati menggunakan PHP pasti akan menyukai solusi pengkodean baru ini.
Jika Anda seorang pengembang web yang suka bekerja dengan PHP, baca terus selagi kami membahas fitur baru terpenting dari pembaruan PHP 7.2.0.
Peningkatan Inti di PHP 7.2.0
Berikut adalah beberapa peningkatan inti dalam pembaruan terbaru PHP.
Solusi untuk Bug Sifat Sifat
Sampai rilis PHP 7.2.0, ada bug properti sifat yang belum diperbaiki. Dalam pembaruan terbaru, jika suatu sifat mendefinisikan properti, kelas tidak dapat menentukan properti yang memiliki nama yang sama kecuali jika lebih kompatibel (nilai awal dan visibilitas yang sama). Jika tidak, itu mengeluarkan kesalahan fatal.
Jadi tidak seperti PHP 7 dan PHP 7.1, kita sekarang dapat mengharapkan untuk menerima kesalahan fatal. Perilaku ini telah diperbaiki dalam pembaruan terbaru PHP, dan sekarang berfungsi seperti yang dikatakan dalam dokumentasi PHP. Sekarang Anda dapat melakukan perbandingan yang ketat. Saat Anda menjalankan skrip di PHP 7.2, Anda akan diberi tahu tentang kesalahan fatal.
Deklarasi Jenis Pengembalian
Pembaruan terbaru dari PHP 7 menambahkan dukungan lebih lanjut untuk deklarasi tipe pengembalian. Sama seperti deklarasi tipe argumen, tipe deklarasi ini juga menyatakan tipe nilai yang kemungkinan akan dikembalikan dari suatu fungsi. Untuk deklarasi tipe pengembalian, tipe yang sama ditawarkan seperti untuk deklarasi tipe argumen.
Di PHP 7.2.0, pengguna diaktifkan untuk menggunakan deklarasi tipe kembali dalam hal tipe data objek.
Selain itu, pengetikan yang ketat juga berdampak pada deklarasi tipe pengembalian. Mempertimbangkan mode lemah default, semua nilai yang dikembalikan dipaksa ke tipe yang akurat (dalam kasus mereka berbeda dan belum dari tipe itu). Namun, dalam mode kuat, semua nilai yang dikembalikan harus dari jenis yang akurat/benar. Jika tidak, TypeError diterima.
Namun, metode anak harus cocok dengan deklarasi tipe kembalian dengan metode induk saat Anda mengganti metode induk. Tetapi jika tipe pengembalian tidak ditentukan oleh metode induk, maka metode anak dapat mendefinisikannya.
Ekspresi Pengembalian Generator
Fitur PHP ini dibangun di atas fungsionalitas yang dirilis dalam PHP 5.5 yang disebut fungsionalitas generator. Ini memungkinkan pernyataan pengembalian untuk digunakan di generator dan untuk memungkinkan ekspresi akhir dikembalikan. Namun, pengembalian dengan referensi dibatasi. Nilai dapat diperoleh dengan menggunakan metode Generator baru " getReturn()" yang hanya digunakan ketika generator selesai menghasilkan nilai.
Namun demikian, kemampuan untuk mengembalikan nilai akhir dengan jelas menggunakan generator jelas merupakan kemampuan yang berguna untuk dimiliki. Ini karena memungkinkan nilai akhir untuk dikembalikan sepenuhnya, oleh generator, yang dapat ditangani secara khusus oleh kode klien yang menjalankan generator. Sebagai perbandingan, ini jauh lebih sederhana daripada memaksa kode klien untuk terlebih dahulu memeriksa apakah nilai akhir dihasilkan atau tidak dan kemudian menangani nilainya secara khusus.
Opsi Sesi
Session_start() sekarang mengenali banyak opsi yang mengesampingkan berbagai arahan konfigurasi sesi yang diatur di php.ini.
Opsi ini juga telah diperluas untuk memfasilitasi session.lazy_write, yang tetap aktif secara default dan membuat PHP menimpa file sesi apa pun dengan perubahan hanya data sesi dan read_and_close . Ini adalah opsi yang hanya dapat dilewati ke session_start() untuk mengonfirmasi bahwa data sesi harus dibaca dan kemudian sesi harus segera ditutup sementara tetap tidak berubah.
Peningkatan Keamanan di PHP 7.2.0
Berikut adalah peningkatan keamanan terbaru yang diterapkan di PHP 7.2.0.
Algoritma Argon 2 dalam Kata Sandi Hash
Argon 2, pemenang Kompetisi Password Hashing pada tahun 2005, adalah algoritma hashing yang kuat. Argon2 sedang diakui sebagai standar internet universal. Saat ini, algoritme dianggap lebih hemat biaya dan aman daripada Bcrypt, algoritme hashing lainnya. Argon2 yang baru dimasukkan dapat digunakan melalui fungsi – password_hash().
Sementara Bcrypt hanya memperhitungkan satu faktor biaya, Argon2 baru memperhitungkan tiga faktor biaya berikut-
- Biaya waktu- menentukan jumlah iterasi dari algoritma hashing
- Biaya memori- menentukan nomor KiB yang harus digunakan selama hashing.
- Faktor paralelisme- menetapkan jumlah utas paralel yang akan dikonsumsi selama hashing.
Faktor biaya default ditentukan oleh tiga konstanta baru sebagai berikut:
- PASSWORD_ARGON2_DEFAULT_TIME_COST
- PASSWORD_ARGON2_DEFAULT_MEMORY_COST
- PASSWORD_ARGON2-DEFAULT-THREADS
Lib-natrium Menggantikan Mcyrpt
Peningkatan besar lainnya dalam PHP 7.2.0 adalah penghapusan perpustakaan kriptografi Mcrypt konvensional dari inti PHP dan penambahan Libsodium.
Mcrypt dianggap sebagai perangkat yang ditinggalkan dan pembatasan pertumbuhan bahasa. Itu sebabnya telah diganti dengan Libsodium di PHP 7.2.0. Libsodium adalah perpustakaan kriptografi canggih yang menyediakan enkripsi otentik bersama dengan kriptografi kurva eliptik yang efisien.
Libsodium terdiri dari algoritme yang dipilih dengan cermat yang diterapkan oleh pakar keamanan untuk mencegah kerentanan saluran samping. Dengan kata lain, Libsodium adalah pustaka lintas bahasa dan lintas platform untuk dekripsi, enkripsi, hashing kata sandi, tanda tangan, dan banyak lagi.
Fitur dan Fungsi yang Tidak Digunakan Lagi
Berikut ini adalah beberapa fungsi dan fitur PHP 7.2.0 yang tidak digunakan lagi yang diharapkan akan dihapus sebelum rilis PHP 8.0.
Gmp_random() diambil sebagai fitur yang bergantung pada platform dan kemungkinan akan dihentikan. Sebagai gantinya, gmp_random_rage() dan gmp_random_bits() akan digunakan.
(tidak disetel) pemeran adalah ekspresi lain yang biasanya mengembalikan nol dan karenanya dianggap tidak berguna.
Each() digunakan untuk mengulangi foreach() seperti array, tetapi foreach() lebih disukai karena kecepatannya yang lebih tinggi.
spl_autoload_register di PHP 5.1 telah menggantikan fungsi _autoload . Tapi sekarang penghentian kemungkinan akan terjadi ketika fungsi ditemui selama kompilasi.
mbstring .fucc_overload juga telah disetel untuk dihentikan.
Fungsi assert() mengkonfirmasi pernyataan yang diberikan dan mengambil tindakan yang memadai jika ada hasil FALSE . Penggunaan assert() dengan argumen string akan dihentikan karena menyebabkan kerentanan RCE.
Variabel $php_errormsg dibangun dalam lingkup lokal saat kesalahan non-fatal diterima. Tapi sekarang, dengan rilis PHP 7.2.0, error_clear_last dan error_get_last akan digunakan sebagai gantinya.
$errcontext cenderung tidak digunakan lagi karena fungsi ini menyebabkan masalah untuk pengoptimalan. Karena $errcontext digunakan untuk memodifikasi semua objek dan referensi dalam cakupan saat ini, fungsi ini hampir tidak digunakan.
Create_function() memiliki banyak masalah keamanan. Selain itu, ia juga memiliki masalah penggunaan memori dan kinerja yang buruk.
Mengapa Pengembang WordPress Harus Menggunakan PHP 7.2.0?
Pembaruan terbaru ke PHP menghadirkan fitur-fitur baru dan langkah-langkah keamanan yang ditingkatkan. Ini mungkin termasuk faktor-faktor seperti kriptografi modern, penambahan fitur inti, dan kecepatan memuat yang lebih cepat untuk berbagai situs.
Manfaat Menggunakan PHP
PHP adalah bahasa yang sangat kompatibel yang dapat digunakan dengan hampir semua database dan server standar global (yaitu PostgreSQL, MySQL, Sybase, Oracle, Microsoft SQL Server, dan Informix). Ini menawarkan kinerja cepat yang didukung oleh komunitas open source.
Ini digunakan untuk berbagai tujuan seperti menghasilkan file dan halaman dinamis. PHP memungkinkan Anda untuk mengelola dan menyimpan informasi dalam database situs. Ini memungkinkan pengguna mengenkripsi data menggunakan fitur keamanan dan membatasi akses tidak sah ke situs web.
PHP digunakan oleh banyak situs web terkenal seperti Yahoo, Facebook, dan Wikipedia.
Lebih penting lagi, pembaruan terbaru PHP 7.2.0 menawarkan peningkatan keamanan yang penting, fitur baru yang menarik, dan peningkatan kinerja.
Kinerja PHP 7.2.0
Menurut benchmark Phoenix, PHP 7.2.0 13% lebih cepat dari 7.1 dan hampir 20% lebih cepat dari 7.0. Dibandingkan dengan PHP 2.6 (masih digunakan oleh 40% pengguna PHP), hampir 25% lebih cepat.
Ada banyak tes yang mendukung statistik dan temuan ini. Patokan resmi PHP mengungkapkan bahwa PHP 7 dua kali lebih efisien dan dua kali lebih cepat dari 5.6. PHP 7 memiliki setengah latensi. Juga, benchmark lain seperti Kinsta menyarankan PHP 7 bisa sampai tiga kali lebih cepat dari versi sebelumnya.
Seperti dibahas di atas, alasan utama peningkatan kinerja PHP 7.2.0 adalah dimasukkannya fitur-fitur canggih dan penghentian fungsi-fungsi lama. Itulah yang membuat versi PHP ini sangat cocok untuk pengguna WordPress. Namun, pengembang harus memeriksa kode dan memperbarui fungsi yang tidak digunakan lagi untuk memastikan semuanya kompatibel.
Dukungan Keamanan PHP 7.2.0
PHP 7.2.0 tidak lagi menawarkan dukungan keamanan. Namun, dukungan kritis akan tetap tersedia hingga akhir 2018. Komunitas PHP tidak lagi menawarkan dukungan untuk masalah kecil dan bug. Kabar baiknya adalah bahwa pembaruan terbaru PHP 7.2.0 akan memastikan bahwa pembaruan keamanan tingkat lanjut berfungsi dengan baik, dan proyek akan terus didukung oleh komunitas PHP.
Libsodium adalah fitur yang paling penting dan paling ditingkatkan yang telah bermigrasi dari PHP lama ke PHP 7.2.0. Untungnya, Libsodium sangat mudah diperbarui.
Jika Anda berencana untuk memperbarui ke PHP 7.2.0, pastikan kode Anda terdiri dari integrasi dan pengujian unit. Tes semacam itu akan membantu dalam menangkap masalah terkait aplikasi apa pun sebelum muncul sebagai bug di lingkungan langsung.
Pendeknya
PHP 7.2.0 jelas merupakan peningkatan besar dibandingkan dengan versi sebelumnya seperti PHP 5.6. Saat Anda memutakhirkan kode dari PHP 5.6 ke PHP 7, Anda mungkin menemukan beberapa ketidakcocokan, baik di pustaka tempat kode bergantung maupun di kode itu sendiri. Namun, manfaat mengadopsi PHP 7.2 akan membuat usaha Anda bermanfaat.
Karena PHP 7.2 jauh lebih cepat daripada versi PHP yang lebih lama, ini memungkinkan pengguna untuk menawarkan layanan yang ditingkatkan kepada pengguna situs web mereka dengan menerapkan kode lanjutan dari bahasa PHP.
Jadi, apakah Anda siap untuk beralih ke PHP 7.2 yang baru? Jika Anda belum memperbaruinya, maka inilah saat yang tepat untuk memulai transisi Anda. Saatnya untuk memeriksa kode dan meningkatkan skrip Anda.
Beri tahu kami bagaimana Anda menemukan fitur dan fungsi PHP 7.2.0 baru yang ditingkatkan di bagian komentar di bawah!