Pada dasarnya ada 3 cara untuk melakukannya:
Versi 1:"Old school":PHP-Gtk+ dan bcompiler
- pertama, jika Anda belum melakukannya, Anda perlu memisahkan logika bisnis Anda dari lapisan presentasi (HTML, mesin templating, ...) dan lapisan basis data
- lalu sesuaikan lapisan database Anda, sehingga dapat hidup dengan DB alternatif (teringat akan SQlite lokal) dan melakukan sinkronisasi saat online kembali
- Akhirnya gunakan PHP-Gtk+ untuk membuat UI baru dan kemas semua ini dengan bcompiler
Versi 2:"Standar":Bawa serta server Anda
- Lihat Server2Go, WampOnCD, dan teman-teman untuk membuat "server web yang dapat diklik ganda" (Mulai dari Z-WAMP )
- Anda masih perlu menyesuaikan lapisan DB Anda seperti pada Versi 1
Versi 3:"Web 2.x":Memindahkan aplikasi dari server ke browser
- Pindahkan logika aplikasi Anda dari sisi server (PHP) ke sisi klien (JS)
- Jadikan bagian server Anda (PHP) hanya sebagai akses data atau lapisan sinkronisasi
- Gunakan fitur offline HTML5 untuk mengganti akses data Anda dengan data lokal jika Anda offline dan untuk menyinkronkan ulang jika online
Mana yang terbaik?
Ini tergantung pada apa yang Anda miliki dan apa yang Anda inginkan. Jika sebagian besar logika bisnis Anda ada di PHP, maka memindahkannya ke browser mungkin sangat mahal - perlu diketahui, bahwa ini juga menghasilkan kelas baru dari mimpi buruk keamanan. Saya pribadi tidak menyarankan porting cara ini, tetapi saya merekomendasikannya untuk aplikasi baru, jika DB pendukung tidak terlalu besar.
Jika Anda memilih untuk mempertahankan logika bisnis PHP Anda, maka keputusan antara 1 dan 2 sering kali merupakan pertanyaan tentang seberapa banyak UI yang dimiliki aplikasi Anda - jika hanya beberapa bentuk CRUD, 1. mungkin merupakan ide yang bagus - ini jelas merupakan paling portabel (dalam arti membawanya bersama Anda). Jika tidak, lanjutkan dengan 2.