Ci sono essenzialmente 3 modi per andare:
Versione 1:"Old school":PHP-Gtk+ e bcompiler
- in primo luogo, se non l'hai già fatto, devi separare la tua logica aziendale dal livello di presentazione (HTML, motori di modelli, ...) e dal livello del database
- quindi adatta il tuo livello di database, in modo che possa vivere con un DB alternativo (mi viene in mente l'SQlite locale) ed eseguire la sincronizzazione quando è di nuovo online
- Infine usa PHP-Gtk+ per creare una nuova interfaccia utente e comprimere tutto questo con bcompiler
Versione 2:"Standard":porta con te il tuo server
- Guarda Server2Go, WampOnCD e amici per creare un "server web a doppio clic" (inizia da Z-WAMP )
- Devi ancora adattare il tuo livello DB come nella versione 1
Versione 3:"Web 2.x":sposta l'applicazione dal server al browser
- Sposta la logica dell'applicazione dal lato server (PHP) al lato client (JS)
- Rendi la tua parte server (PHP) solo un livello di accesso o sincronizzazione ai dati
- Utilizza le funzionalità offline di HTML5 per sostituire l'accesso ai dati con dati locali se sei offline e per risincronizzare se online
Qual è il migliore?
Questo dipende da cosa hai e cosa vuoi. Se la maggior parte della tua logica aziendale è in PHP, spostarla nel browser potrebbe essere proibitivo:tieni presente che questo genera anche una nuova classe di incubi sulla sicurezza. Personalmente sconsiglio il porting in questo modo, ma lo consiglio per le nuove app, se il DB di supporto non è troppo grande.
Se hai scelto di mantenere la tua logica aziendale PHP, la scelta tra 1 e 2 è spesso una questione di quanta interfaccia utente ha la tua app - se sono solo pochi moduli CRUD, 1. potrebbe essere una buona idea - è sicuramente il più portatile (nel senso di portarlo con te). In caso contrario, vai con 2.