По същество има 3 начина:
Версия 1:„Стара школа“:PHP-Gtk+ и bcompiler
- първо, ако все още не сте го направили, трябва да отделите своята бизнес логика от слоя на презентацията (HTML, шаблонни машини, ...) и слоя на базата данни
- след това адаптирайте своя слой база данни, така че да може да живее с алтернативна DB (локален SQlite идва на ум) и да извърши синхронизация, когато отново е онлайн
- Накрая използвайте PHP-Gtk+, за да създадете нов потребителски интерфейс и опаковайте всичко това с bcompiler
Версия 2:„Стандартна“:Вземете сървъра си със себе си
- Погледнете Server2Go, WampOnCD и приятели, за да създадете „уеб сървър с двойно кликване“ (Започнете от Z-WAMP )
- Все още трябва да адаптирате своя DB слой, както във версия 1
Версия 3:"Web 2.x":Преместете приложението от сървър в браузър
- Преместете логиката на приложението си от страната на сървъра (PHP) към страната на клиента (JS)
- Направете вашата сървърна част (PHP) само слой за достъп до данни или синхронизиране
- Използвайте офлайн функциите на HTML5, за да замените достъпа си до данни с локални данни, ако сте офлайн, и за повторно синхронизиране, ако сте онлайн
Кой е най-добрият?
Това зависи от това, което имате и какво искате. Ако по-голямата част от вашата бизнес логика е в PHP, тогава преместването й в браузъра може да е непосилно скъпо – имайте предвид, че това също генерира цял нов клас кошмари за сигурност. Аз лично не препоръчвампренасяне по този начин, но го препоръчвам за нови приложения, ако резервната база данни не е твърде голяма.
Ако сте избрали да запазите своята бизнес логика на PHP, тогава изборът между 1 и 2 често е въпрос на това колко потребителски интерфейс има вашето приложение - ако е само няколко CRUD форми, 1. може да е добра идея - определено е най-преносим (в смисъл да го вземете със себе си). Ако не, отидете с 2.