Berbagi Tools, PHP Code Fixer: Periksa yang Deprecated, Error dll di PHP 7

Pada seri tulisan kali ini saya akan berbagi tools yang saya gunakan untuk memeriksa aplikasi-aplikasi berbasis PHP yang saya kembangkan, apakah kompatibel dengan PHP 7 atau tidak. Tentunya jika dilakukan secara manual, akan menguras tenaga sangat banyak.

Kita harus mengerti apa saja fitur yang deprecated, yang tidak didukung, dihapus dll di PHP 7 sekaligus memeriksa baris demi baris di aplikasi berbasis PHP yang kita kembangkan.

Tool yang saya gunakan adalah PHP Code Fixer dari om Wap Morgan dari Russia. Bisa diliat-liat disini: https://github.com/wapmorgan/PhpCodeFixer. Hebatnya, tidak hanya PHP 7 yang didukung oleh Class ini, tapi juga PHP 5.x.

Instalasi

untuk instalasi dari PHP Code Fixer sendiri, sangat mudah jika dilakukan dengan Composer. (Untuk apa itu composer dan cara installnya silakan baca disini).

composer require wapmorgan/php-code-fixer

Kemudian lakukan composer update:

composer update

atau kalau malas menggunakan composer, silakan download repository-nya sebagai file Zip di https://github.com/wapmorgan/PhpCodeFixer/archive/master.zip

Penggunaan

Dari dokumentasinya didapatkan penjelasan sbb:

Usage: phpcf [--target VERSION] [--max-size SIZE] FILES...

Options:
  -t, --target VERSION  target php version [default: 7.1]
  -s, --max-size SIZE   sets max size of php file. If size of file is above this value, file will be skipped [default: 1mb]

dengan parameter target (versi PHP yang dituju) dan size (ukuran file PHP).

Versi PHP yang didukung saat ini:

  • PHP versi 7.1
  • PHP versi 7.0
  • PHP versi 5.6
  • PHP versi 5.5
  • PHP versi 5.4
  • PHP versi 5.3

Contohnya:

php bin/phpcf --target 7.1 /path/ke/folder/sisteminformasi

Contoh hasil:

~/tools/vendor/bin$ php phpcf --target 7.1 /home/subdomain/psbonlinefree/
Max file size set to: 1.000 MiB
Scanning /home/subdomain/psbonlinefree/ ...
 PHP |             Type |                      File:Line | Issue
 5.5 | function         | ...onlinefree//modul/10.php:34 | Function mysql_query is deprecated.
 5.5 | function         | ...onlinefree//modul/10.php:50 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...onlinefree//modul/11.php:30 | Function mysql_query is deprecated.
 5.5 | function         | ...onlinefree//modul/11.php:31 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...onlinefree//modul/12.php:38 | Function mysql_query is deprecated.
 5.5 | function         | ...onlinefree//modul/12.php:40 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...onlinefree//modul/14.php:31 | Function mysql_query is deprecated.
 5.5 | function         | ...onlinefree//modul/14.php:47 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...onlinefree//modul/15.php:33 | Function mysql_query is deprecated.
 5.5 | function         | ...bonlinefree//modul/2.php:41 | Function mysql_query is deprecated.
 5.5 | function         | ...bonlinefree//modul/2.php:43 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...bonlinefree//modul/3.php:70 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...bonlinefree//modul/3.php:70 | Function mysql_query is deprecated.
 5.5 | function         | ...onlinefree//modul/3.php:118 | Function mysql_query is deprecated.
 5.5 | function         | ...bonlinefree//modul/5.php:44 | Function mysql_query is deprecated.
 5.5 | function         | ...bonlinefree//modul/5.php:45 | Function mysql_num_rows is deprecated.
 5.5 | function         | ...bonlinefree//modul/5.php:48 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...bonlinefree//modul/8.php:31 | Function mysql_query is deprecated.
 5.5 | function         | ...bonlinefree//modul/8.php:47 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...bonlinefree//modul/9.php:33 | Function mysql_query is deprecated.
 5.5 | function         | ...nefree//modul/fungsi.php:51 | Function mysql_fetch_array is deprecated.
 5.5 | function         | ...nefree//modul/fungsi.php:51 | Function mysql_query is deprecated.
 5.5 | function         | ...e//modul/konfigurasi.php:48 | Function mysql_connect is deprecated.
 5.5 | function         | ...e//modul/konfigurasi.php:51 | Function mysql_select_db is deprecated.
Replace Suggestions:
1. Don't use function mysql_connect. Instead use mysqli::__construct
Peak memory usage: 1.536 MB

Disana ada banya fungsi deprecated di PHP 7.1, jika ingin tetap dimigrasi, ada pula saran yang diberikan.

Leave a Reply