基本的に3つの方法があります:
バージョン1:「オールドスクール」:PHP-Gtk+およびbcompiler
- まず、まだ行っていない場合は、ビジネスロジックをプレゼンテーション層(HTML、テンプレートエンジンなど)およびデータベース層から分離する必要があります
- 次に、データベースレイヤーを調整して、代替DB(ローカルSQliteが頭に浮かぶ)と共存し、オンライン時に再び同期を実行できるようにします
- 最後にPHP-Gtk+を使用して新しいUIを作成し、これらすべてをbcompilerでパックします
バージョン2:「標準」:サーバーを携帯します
- Server2Go、WampOnCD、およびその仲間たちを見て、「ダブルクリック可能なWebサーバー」を作成します( Z-WAMP )
- バージョン1と同様にDBレイヤーを調整する必要があります
バージョン3:「Web2.x」:アプリケーションをサーバーからブラウザに移動します
- アプリケーションロジックをサーバー側(PHP)からクライアント側(JS)に移動します
- サーバー部分(PHP)をデータアクセスまたは同期レイヤーのみにする
- HTML5オフライン機能を使用して、オフラインの場合はデータアクセスをローカルデータに置き換え、オンラインの場合は再同期します
どれが最適ですか?
これはあなたが持っているものとあなたが望むものに依存します。ビジネスロジックのほとんどがPHPである場合、それをブラウザに移動すると、非常にコストがかかる可能性があります。これにより、まったく新しいクラスのセキュリティナイトマーが生成されることに注意してください。個人的には移植はお勧めしません この方法ですが、バッキングDBが大きすぎない場合は、新しいアプリに推奨します。
PHPのビジネスロジックを維持することを選択した場合、1と2の間の乾燥は、多くの場合、アプリのUIの量の問題になります。CRUDフォームが数個しかない場合は、1。が良いアイデアかもしれません。最もポータブル(持ち運びの意味で)。そうでない場合は、2を使用してください。