Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP

Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP

Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP

Ok gaes sesuai janji saya tadi, saya akan kasih tutorial cara membuat fitur update untuk aplikasi berbasih PHP. Kalian semua pasti tahu kalau fitur update pada aplikasi mobile (android, ios, atau windows phone) merupakan fitur wajib yang harus ada. Terlebih lagi aplikasi mobile punya store yang mempermudah dalam manajemen versi dan updating.
Lantas bagaimana dengan aplikasi berbasi web terutama php? Sejatinya fitur update pada aplikasi php bukan lah hal yang baru. Karena rata-rata CMS web berbasis php sudah mengusung fitu update. Tapi bagaimana kalau ingin diterapkan di aplikasi buatan sendiri? Hal ini lah yang akan coba saya paparkan gaes. Yang perlu kalian ketahui terlebih dahulu ialah, Fitur update lebih baik memiliki 2 sisi, yaitu sisi client (aplikasi utama yang digunakan) dan sisi server yang fungsinya sebagai service agar ketersediaan update berserta informasinya dapat diketahui client. Tidak akan saya paparkan panjang lebar, karena seluruh source code ada di repositori github saya.

Server

Dari sisi server simpelnya kita hanya butuh satu file dengan output berupa informasi ketersediaan update yang bertipe data json. Sebenarnya tidak harus json, tapi saya lebih nyaman menggunakannya karena lebih fleksibel. kodingnya sebagai berkut:


  1. <?php
  2. /**
  3. * @Author: ramadhansutejo
  4. * @Date: 2016-09-29 11:16:09
  5. * @Last Modified by: ramadhansutejo
  6. * @Last Modified time: 2016-09-29 18:49:37
  7. */
  8. $releaseDir = 'http://your-server/dir/file';
  9. $appName = 'demo-app-';
  10. $appVersion = '1.1';
  11. $updateVar = array(
  12. 'update_status' => TRUE,
  13. 'php_recruitment' => '5.4.45',
  14. 'db_update' => FALSE,
  15. 'update_link' => $releaseDir.'/'.$appName.$appVersion.'.zip',
  16. 'update_version' => $appVersion,
  17. 'file_name' => $appName.$appVersion.'.zip',
  18. );
  19. echo json_encode($updateVar);

Client

Nah dari sisi client-nya kita perlu buat file untuk cek ketersediaan update atau lebih tepatnya cek informasi sesuai denganobject dari koding server diatas. Misal, pada variable “$updateVar” terdapat beberapa object salah satunya “update_status” yang berarti status update apakah tersedia (TRUE) atau tidak (FALSE). Intinya, pada sisi client kita harus membuat proses cek update, dan proses updating. Pada contoh yang sudah saya buat, terdapat 3 file yang menjadi inti dari fitur ini.
1. File update.php berfungsi untuk cek informasi update dari server.
  1. <?php
  2. require_once 'app_info.php';
  3. // Lakukan CURL untuk get data dari server/API
  4. $curl_handle = curl_init();
  5. curl_setopt($curl_handle, CURLOPT_URL, 'http://your-server/service_to/update_information'); //ex: http://myapp.id/update
  6. curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
  7. $response = curl_exec($curl_handle);
  8. curl_close($curl_handle);
  9. // Tampung response kedalam variable result
  10. $result = json_decode($response);
  11. // Lakukan preg_replace untuk mengabaikan karakter selain angka, untuk yang berhubungan dengan penomoran versi agar perbandingan kedua versi pas
  12. $php_recruitment = preg_replace('/[^0-9.].*/', '', $result->php_recruitment);
  13. $php_version = preg_replace('/[^0-9.].*/', '', $appInfo['php_version']);
  14. $update_version = preg_replace('/[^0-9.].*/', '', $result->update_version);
  15. $curent_version = preg_replace('/[^0-9.].*/', '', $appInfo['curent_version']);
  16. // Lakukan pengecekan, dengan rekruitmen utama yaitu status update pada server tersedia/available (bernilai TRUE)
  17. if ($result->update_status == TRUE)
  18. {
  19. // Cek versi minimum php yang dibutuhkan dari versi updetan
  20. if ($php_recruitment > $php_version)
  21. {
  22. echo "Versi terbaru ditemukan, namun membutuhkan php versi ".$result->php_recruitment.". Upgrade versi php anda";
  23. }
  24. if ($update_version == $curent_version)
  25. {
  26. echo "Aplikasi/Sistem sudah dalam versi terbaru";
  27. }
  28. echo "Update sistem tersedia, versi sistem saat ini: ".$appInfo['curent_version'].". Update ke versi ".$result->update_version."<br><br>";
  29. echo '
  30. <form action="system_update.php" method="POST">
  31. <input name="file_name" type="hidden" value="'.$result->file_name.'">
  32. <button type="submit" name="update" value="'.$result->update_link.'">Update</button>
  33. <form>
  34. ';
  35. }
  36. else
  37. {
  38. echo "Update tidak tersedia";
  39. }
  40. ?>
Ganti http://your-server/service_to/update_information menjadi alamat URL file yang saya tulis pada sisi server diatas.
2. File system_update.php berfungsi sebagai proses download & updating  



    1. <?php
    2. require_once 'CfnPHPUpdater.php';
    3. if (isset($_POST['update']))
    4. {
    5. $message_update = array(
    6. 'downloading_message' => 'Mendownload versi terbaru',
    7. 'error_downloading_message' => 'Gagal mendownload versi terbaru',
    8. 'extracting_message' => 'Mengekstrak dan menginstall',
    9. 'error_extracting_message' => 'Terjadi kesalahan saat meng-ekstrak file',
    10. 'success_update_message' => 'Berhasil update ke versi terbaru',
    11. );
    12. $message_no_update = array(
    13. 'error' => 'Gagal melakukan update',
    14. );
    15. $do_update = new CfnPHPUpdater;
    16. $do_update->doUpdate($_POST['file_name'], $_POST['update'], 500000, $message_update, $message_no_update);
    1. }
    2. else
    3. {
    4. echo 'Forbidden!!';
    5. }
     Silahkan sesuaikan isi ‘$message_update‘ dan ‘$message_no_update‘.
    3. File CfnPHPUpdater.php merupakan class yang saya buat untuk proses downloading & updating yang meng-extends dari kelas bawaan PHP ZipArchive.
    Berikut screenshot hasilnya.

    Sebelum update :

    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 1
    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 2
    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 3

    Proses update :

    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 1

    Setelah update : 

    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 1
    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 2
    Cara Membuat PHP System Updater, Fitur Update Untuk Aplikasi Berbasis PHP
    GAMBAR 3

    Kesimpulan


    • File update harus dikompresi menjadi zip
    • Sebenarnya kamu hanya perlu meng-kompresi file-file yang mengalami perubahan. Perlu diingat, contoh yang saya buat untuk peng-ekstrakan file update dilakukan di root folder aplikasi (/)
    • Fitur ini masih jauh dari kata sempurna, akan tetapi inti dari proses update pada aplikasi PHP kira-kira seperti ini
    • Maaf jika penyampaian saya susah untuk dimengerti, karena pada dasarnya saya tidak terlalu mahir untuk menulis 
    • source code lengkap bisa di-download / clone di github saya https://goo.gl/ywWiscvery welcome jika ingin berkontribusi untuk mengembangkan fitur update ini
    Terima kasih banyak gaes.

    Share this

    Related Posts

    Previous
    Next Post »